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

3815 ワード

----------------------------------------------------------------------------------------
student(StuId,StuName,StuAge,StuSex)学生表
teacher(TId,Tname)教師表
course(CId,Cname,C_TId)カリキュラム
sc(SId,S_CId,Score)成績表
----------------------------------------------------------
問題二十三:各科の成績を統計的に印刷する各分数段の人数:課程ID、課程名称、[100-85],[85-70],[70-60],[<60]
SELECT sc.S_CId "  ID", course.Cname "    ",
SUM(CASE WHEN sc.Score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) "[100-85]",
SUM(CASE WHEN sc.Score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) "[85-70]",
SUM(CASE WHEN sc.Score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) "[70-60]", 
SUM(CASE WHEN sc.Score<60 THEN 1 ELSE 0 END) "[<60]"
FROM sc,course
where sc.S_CId=course.CId
GROUP BY sc.S_CId;

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