WITH t AS (
SELECT stu.sId
FROM Student stu
JOIN (SELECT sId, cId, score FROM SC GROUP BY sId, cId, score) sc ON stu.sId = sc.sId
JOIN Course c ON sc.cId = c.cId
WHERE cname IN ('语文', '数学', '英语')
GROUP BY stu.sId
HAVING AVG(sc.score) > 60
AND COUNT(1) = 3
)
SELECT count(*)
FROM t
WHERE cname IN ('语文', '数学', '英语') 保证学科只为语文,数学,英语
HAVING AVG(sc.score) > 60 AND COUNT(1) = 3 保证3科的成绩的平均值大于60,防止缺科(但用例没覆盖这种场景)

京公网安备 11010502036488号