sql语句查询所有大于某门课程平均成绩的id以及该生本门课程的成绩

2025-02-12 21:21:13
推荐回答(2个)
回答1:

SELECT *
FROM CourseScore
WHERE Course = '数学'
AND Score > (
    SELECT AVG(Score)
    FROM CourseScore
    WHERE Course = '数学'    
    )

 更通用一些的:

SELECT A.*
FROM CourseScore A
JOIN (--查询各科目的平均成绩
    SELECT Course, AVG(Score) Average
    FROM CourseScore
    GROUP BY Course
    ) B ON A.Course = B.Course
WHERE A.Course = B.Course
AND A.Score > B.Average
ORDER BY A.Course, A.Score DESC --按科目、成绩(倒序)

回答2:

满足要求吗?