-- 考虑到有学生为参加考试导致分数为 NULL 的情况 SELECT count(*) FROM ( SELECT St.sId, sum(IFNULL(SC.score, 0)) / count(distinct C.cname) AS avg_score FROM Student St LEFT JOIN SC USING (sId) LEFT JOIN Course C USING (cId) GROUP BY sId HAVING sum(IFNULL(score, 0)) / 3 > 60 ) t