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