50個のSQL文(MySQL版)問題24

1948 ワード

----------------------------------------------------------------------------------------
student(StuId,StuName,StuAge,StuSex)学生表
teacher(TId,Tname)教師表
course(CId,Cname,C_TId)カリキュラム
sc(SId,S_CId,Score)成績表
----------------------------------------------------------
問題二十四:学生の平均成績とその順位を調べる
SELECT s.StuId,s.StuName,v.AvgScore,
(SELECT COUNT(*)
FROM (SELECT sc.SId,AVG(sc.Score) AvgScore
FROM sc GROUP BY sc.SId) v2
WHERE v.AvgScore<v2.AvgScore)+1 Rank
FROM student s,
(SELECT sc.SId, AVG(sc.Score) AvgScore
FROM sc GROUP BY sc.SId) v
WHERE s.StuId=v.SId
ORDER BY Rank;

答えはただ参考にして、必ずしも完全に正しいとは限らなくて、もし间违いを発见してあるいはもっと良いことがあるならば、评论を歓迎して、互いに交流して、いっしょに成长します!!!