【sql:练习题4】查询所有同学的学⽣编号、学⽣姓名、选课总数、所有课程的
成绩总
题⽬:查询所有同学的学⽣编号、学⽣姓名、选课总数、所有课程的成绩总和
分析:看到总数应该是要⽤count(course),成绩总和应该是sum(score)这些聚合函数,因为要知道每个⼈的因此要以⼈分组 group by studentid
因为要知道学⽣的详细信息,因此要join on student 表
写出来的sql:
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 了