zoukankan      html  css  js  c++  java
  • MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)

    列转行: 多列转多行

    行转列:多行转多列

     

    以下转自:https://www.cnblogs.com/ClassNotFoundException/p/6860615.html

    列转行:利用max(case when then)

    复制代码
    SELECT
        `name`,
        MAX(
            CASE 
            WHEN  course='语文' THEN
                score
            END
        ) AS 语文,
        MAX(
            CASE 
            WHEN course='数学' THEN
                score
            END
        ) AS 数学, 
        MAX(
            CASE 
            WHEN course='英语' THEN
                score
            END
        ) AS 英语
    FROM
        student
    GROUP BY `name`
    ;
    复制代码

     

    合并字段显示:利用group_cancat(course,”:”,”score”)

    复制代码
    SELECT
        `name`,
        GROUP_CONCAT(course, ":", score) AS 成绩
    FROM
        student
    GROUP BY
        `name`;
    复制代码

     -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -

    -- 合并字段显示 : 去重、排序
    SELECT rid,GROUP_CONCAT(DISTINCT gid ORDER BY gid)
    FROM gt_lighting.res_lights
    GROUP BY rid;

    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

    多来点面试题:

    计算各班级及格人数:

        SELECT class,SUM(CASE WHEN score >= 60 THEN 1 END) AS '及格',SUM(CASE WHEN score < 60 THEN 1 END) AS '不及格'
        FROM gradeTable
        GROUP BY class;

    或者:

    复制代码
        SELECT succ.class,succ.su AS '及格',fail.fa AS '不及格' FROM 
        (
        SELECT class,COUNT(1) AS su
        FROM gradeTable
        WHERE score >= 60
        GROUP BY class
        ) AS succ,
        (
        SELECT class,COUNT(1) AS fa
        FROM gradeTable
        WHERE score < 60
        GROUP BY class
        ) AS fail
        WHERE succ.class = fail.class;
    复制代码

    Console : 

    啦啦啦

  • 相关阅读:
    js之iframe子页面与父页面通信
    js的event对象
    整洁代码的4个条件
    PYTHON 自然语言处理
    如何检测浏览器是否支持CSS3
    BootStrap前端框架使用方法详解
    如何使用repr调试python程序
    Python编程快速上手——Excel到CSV的转换程序案例分析
    C++和JAVA传统中积极的一面
    20个LINUX相关的网站
  • 原文地址:https://www.cnblogs.com/maohuidong/p/11015972.html
Copyright © 2011-2022 走看看