【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 了

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM