【sql: 练习题4】查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总

题目:查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总和

分析:看到总数 应该是要用count(course) ,成绩总和 应该是sum(score) 这些聚合函数,因为要知道每个人的 因此要以人分组 group by studentid

          因为要知道学生的详细信息,因此要join on student 表

 

写出来的sql:

SELECT a.id,a.stdentname, b, c FROM student a JOIN
      (SELECT studentid,COUNT(courseid)AS b,SUM(score) AS c FROM student_score GROUP BY studentid)d
ON a.id = d.studentid;

 

查询的结果:

 

改进: 把没有选课和没有课程成绩的学生也显示出来,就要用到 left join 了

 

posted @ 2019-08-08 19:11  初学者,方圆几里  阅读(13309)  评论(0编辑  收藏  举报