数据库SQL语句----统计分组查询以及case when用法实例详解

统计各班级人数

SELECT GRADE_ID,COUNT(ID) AS STUNUM FROM STUDENT GROUP BY GRADE_ID

统计各个班级人数,显示班级名称

SELECT A.GRADE_ID,B.NAMES,COUNT(A.ID) AS STUNUM FROM STUDENT A JOIN GRADE B ON A.GRADE_ID=B.ID GROUP BY A.GRADE_ID, B.NAMES//显示两个字段,group by两个字段

统计各个班级,各个科目的不及格人数(分数<60)

SELECT C.NAMES,COUNT(A.STUDENT_ID) AS STUNUM FROM SCORES A JOIN STUDENT B ON A.STUDENT_ID=B.ID JOIN GRADE C ON B.GRADE_ID=C.ID WHERE A.SCORE<60 GROUP BY C.NAMES//不断地join on,根据条件

统计所有班级男生人数,女生人数,显示列名:班级编号,男生人数,女生人数:

SELECT GRADE_ID,SUM(CASE SEX WHEN 1 THEN 1 ELSE 0 END) AS MALENUM,SUM(CASE SEX WHEN 2 THEN 1 ELSE 0 END) AS FEMALENUM FROM STUDENT GROUP BY GRADE_ID

统计所有班级的语文最高、平均成绩,显示班级、最高分、平均分

SELECT A.GRADE_ID,B.NAMES,MAX(C.SCORE),CAST(AVG(C.SCORE) AS DECIMAL(6,2)) FROM STUDENT A JOIN GRADE B ON A.GRADE_ID=B.ID JOIN SCORES C ON A.ID = C.STUDENT_ID WHERE C.SUBJECT_ID='YW'

GROUP BY A.GRADE_ID,B.NAMES

*//统计sql,查询sql

猜你喜欢

转载自blog.csdn.net/lg_1996/article/details/81067310