列轉行:利用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」)post
SELECT `name`, GROUP_CONCAT(course, ":", score) AS 成績 FROM student GROUP BY `name`;
-- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -spa
-- 合併字段顯示 : 去重、排序 SELECT rid,GROUP_CONCAT(DISTINCT gid ORDER BY gid) FROM gt_lighting.res_lights GROUP BY rid;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- code
多來點面試題:htm
計算各班級及格人數:blog
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 : 數學
啦啦啦it