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 : 

    啦啦啦

  • 相关阅读:
    selective search生成.mat文件
    2014 百度之星 1003 题解 Xor Sum
    hdu 2544 最短路
    表解锁
    第 10 章 数据结构
    MySQL Study之--Percona Server版本号
    const 不再迷茫
    opecv2 MeanShift 使用均值漂移算法查找物体
    server用JDBC对mysql数据库进行操作
    Django Admin site 显示问题
  • 原文地址:https://www.cnblogs.com/maohuidong/p/11015972.html
Copyright © 2011-2022 走看看