13. 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
关键词:“所有学生、所有课程、平均成绩”
第一步: 锁定表,学生表,成绩表
第二步:获取所有学生的平均成绩
SELECT sid,AVG(score) AS avg_score FROM sc GROUP BY sid;
第三步:将第二步获取的平均成绩拼到每个学生单个课程成绩记录之后,即放在同一行,然后按平均成绩从高到低排序即可
SELECT sc.*,avg_score FROM sc
JOIN (SELECT sid,AVG(score) AS avg_score FROM sc GROUP BY sid) b
ON sc.`SId` = b.`SId`
ORDER BY avg_score DESC