SQL统计求和

SQL统计求和

  • 需求
  • SQL写法
  • 业务SQL运行结果

需求

现在有一张学生Student表,表中有字段语文Chinese、数学Math、英语English、化学chemistry、物理physics等成绩,每科成绩可以分为A\B\C三个等级,现在要求:
1.统计出全部成绩为C的学生的人数;
2.统计出其中有一科成绩为A的学生的人数!(注:此需求是胡编乱造的,不一定和生活规律一致,忘忽略!)
即:T_STUDENT

IDNAMECHINESEMATHENGLISHCHEMISTRYPHYSICS
qwsdefrbfg小明ACDDA
sqwefcreh1小红BBBBB
swegtrjn1s5小花BACCB
dwegfjyuk4s小美AAAAA
3ederb4sdq小傻CCCCC
wedf3334sq小瓜CCCCC

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

 SELECTSUM(CASEWHEN 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_AFROM T_STUDENT

4.删表SQL

DROP TABLE T_STUDENT

业务SQL运行结果

COUNT_ALL_TO_CCOUNT_EXIST_TO_A
23

本文链接:https://my.lmcjl.com/post/14963.html

展开阅读全文

4 评论

留下您的评论.