題目:查詢所有同學的學生編號、學生姓名、選課總數、所有課程的成績總和
分析:看到總數 應該是要用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 了