SQL統計求和

需求

現在有一張學生Student表,表中有字段語文Chinese、數學Math、英語English、化學chemistry、物理physics等成績,每科成績可以分爲A\B\C三個等級,現在要求:
1.統計出全部成績爲C的學生的人數;
2.統計出其中有一科成績爲A的學生的人數!(注:此需求是胡編亂造的,不一定和生活規律一致,忘忽略!)
即:T_STUDENT

ID NAME CHINESE MATH ENGLISH CHEMISTRY PHYSICS
qwsdefrbfg 小明 A C D D A
sqwefcreh1 小紅 B B B B B
swegtrjn1s5 小花 B A C C B
dwegfjyuk4s 小美 A A A A A
3ederb4sdq 小傻 C C C C C
wedf3334sq 小瓜 C C C C C

SQL寫法

爲了不浪費大家的時間,本人已經準備好了這一套流程的SQL供大家使用測試!
1.建表SQL

 CREATE TABLE T_STUDENT
 (
     ID VARCHAR(32) NOT NULL,
     NAME VARCHAR(12) NOT NULL,
     CHINESE CHAR(1) NOT NULL,
     MATH CHAR(1) NOT NULL,
     ENGLISH CHAR(1) NOT NULL,
     CHEMISTRY CHAR(1) NOT NULL,
     PHYSICS CHAR(1) NOT NULL,
     PRIMARY KEY(ID)
  )

2.導入數據

INSERT INTO T_STUDENT 
	(
	        ID,
                NAME,
                CHINESE,
                MATH,
                ENGLISH,
                CHEMISTRY,
                PHYSICS
	)
	VALUES
	(
	       'qwsdefrbfg',
	       '小明',
	       'A',
	       'C',
	       'D',
	       'D',
	       'A'
	),
	(
	       'sqwefcreh1',
	       '小紅',
	       'B',
	       'B',
	       'B',
	       'B',
	       'B'
	),
	(
	       'swegtrjn1s5',
	       '小花',
	       'B',
	       'A',
	       'C',
	       'C',
	       'B'
	),
	(
	       'dwegfjyuk4s',
	       '小美',
	       'A',
	       'A',
	       'A',
	       'A',
	       'A'
	),
	(
	       '3ederb4sdq',
	       '小傻',
	       'C',
	       'C',
	       'C',
	       'C',
	       'C'
	),
	(
	       'wedf3334sq',
	       '小瓜',
	       'C',
	       'C',
	       'C',
	       'C',
	       'C'
	)

3.業務SQL

 SELECT
    	SUM
    	(
            CASE
            WHEN CHINESE||MATH||ENGLISH||CHEMISTRY||PHYSICS='CCCCC' 
            THEN 1 
            ELSE 0 
            END
         )  
            COUNT_ALL_TO_C,
        SUM
        (
            CASE 
            WHEN CHINESE='A' OR MATH='A' OR ENGLISH='A' OR CHEMISTRY='A' OR PHYSICS='A'
            THEN 1 
            ELSE 0 
            END
          )  
            COUNT_EXIST_TO_A
 FROM 
    	T_STUDENT

4.刪表SQL

DROP TABLE T_STUDENT

業務SQL運行結果

COUNT_ALL_TO_C COUNT_EXIST_TO_A
2 3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章