SQL面试50题-17
题目链接:https://zhuanlan.zhihu.com/p/43289968
按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩(重重点与35一样)
思路:平均成绩说明要用到统计函数 要使用GROUP BY语句
重要:SELECT子句中不可出现GROUP BY 中没有的字段名,除非是用统计函数来表示的新字段
SELECT s_id "学号" ,MAX(CASE WHEN c_id = '01' THEN s_score ELSE NULL END ) "语文" ,MAX(CASE WHEN c_id = '02' THEN s_score ELSE NULL END ) "数学" ,MAX(CASE WHEN c_id = '03' THEN s_score ELSE NULL END ) "英语" ,AVG(s_score) "平均成绩" FROM Score GROUP BY s_id ORDER BY AVG(s_score) DESC;