練習10 -- 查詢各科成績最高分、最低分和平均分:以以下形式顯示:課程ID,課程name,最高分,最低分,平均分,及格率,中等率,優良率,優秀率 --及格爲>=60,中等爲:70-80,...

-- 查詢各科成績最高分、最低分和平均分:以以下形式顯示:課程ID,課程name,最高分,最低分,平均分,及格率,中等率,優良率,優秀率 --及格爲>=60,中等爲:70-80,優良爲:80-90,優秀爲:>=90spa

select a.c_id, b.c_name, max(s_score), min(s_score), round(avg(s_score), 2), round(100 *(sum(case when a.s_score >= 60 then 1 else 0 end)/ sum(case when a.s_score then 1 else 0 end)), 2) as 及格率, round(100 *(sum(case when a.s_score >= 70 and a.s_score <= 80 then 1 else 0 end)/ sum(case when a.s_score then 1 else 0 end)), 2) as 中等率, round(100 *(sum(case when a.s_score >= 80 and a.s_score <= 90 then 1 else 0 end)/ sum(case when a.s_score then 1 else 0 end)), 2) as 優良率, round(100 *(sum(case when a.s_score >= 90 then 1 else 0 end)/ sum(case when a.s_score then 1 else 0 end)), 2) as 優秀率 from score a left join course b on a.c_id = b.c_id group by a.c_id, b.c_name

 

--2019/05/04code

相關文章
相關標籤/搜索