sql语句查询所有大于某门课程平均成绩的id以及该生本门课程的成绩
2个回答
展开全部
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 --按科目、成绩(倒序)
追问
有一个学生成绩表存储了全班同学的各科成绩:table score (int student_id, intsub_id, float score)
请使用SQL语句查询出科目sub_id=2的成绩大于平均分的所有学生的id和其该科目的成绩;
追答
你将刚才的语句,替换表名、字段名、变量值就行了啊。
SELECT id, score
FROM score
WHERE sub_id = 2
AND score > (
SELECT AVG(score)
FROM score
WHERE sub_id = 2
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询