SQL中的case when函數

在這裏插入圖片描述

SELECT product.Id,
       Name,
			 (CASE WHEN Price1>200 THEN'貴'
	           WHEN Price1>100 and Price1<200 THEN '一般'
	           ELSE'便宜'
        END) AS new_price
FROM product
GROUP BY BrandId
LIMIT 0,10;

INSERT INTO a(student_id,course_name,score)
VALUES(5,'語文',53),
			(5,'數學',59),
			(5,'英語',55),
			(6,'語文',59),
			(6,'數學',51),
			(6,'英語',52);

例子

想要了解班級內同學的考試情況,現成績表表名爲A,每行都包含以下內容(已知表中沒有重複內容,但所有的考試結果都錄入在了同-張表中,-個同學會有多條考試結果) :
student_ id, course_ name, score

現在需要知道:

1.每門課程得到成績的同學人數
2.每門課程的平均成績
3.如果對於每門]課程來說,60分以下爲不及格,高於60爲及格,統計每]課程及格和不及格的人數

SELECT course_name,
       COUNT(student_id) AS num_student,
       AVG(score) AS avg_score,
			 SUM(CASE WHEN score>60 THEN 1 ELSE 0 END) AS num_pass,
			 SUM(CASE WHEN score<60 THEN 1 ELSE 0 END) AS num_nopass,		 
FROM a
GROUP BY course_name;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章