耗费许久终于把题目做出来,因为使用多层派生表,理清楚结构很费时间。 记录一下,免得以后碰见又认不出来。
如果存在错误或者有更好的建议,欢迎在评论区指出。
MySQL数据库:分组统计
题目:统计各位学生选修的课程门数、平均成绩,结果集包括学号(ID)、姓名(Name)、课程门数(CourseNum)、平均成绩(GradeAvg)、总学分(GreditSum)。
数据库表如下:
分析:
ID,Name可以由c表直接得出,因此重点和难点在CourseNum,GradeAvg,GreditSum。
思路:
先写出CourseNum和GradeAvg的语句:
SELECT * from s LEFT JOIN
(SELECT sc.StudentID,
sc.CourseID