巧用聚合函数count
一直以来只知道count返回的是对某些数据的聚合,但是会遇到如下情况,比如我需要统计一个班有几个人分数优秀,几个良好,几个不及格,这时候会查询三次,其实可以一次搞定三次聚合,话不多说上例子。
这是一个存放学生成绩的表,我现在要统计总人数,优秀的,合格的,不及格的人数。
代码:(注意,条件后一定要加上OR NULL 否则筛选无效,想知道为什么大家有兴趣的自己研究)
SELECT
COUNT(1) AS total,
COUNT(score >= 90 OR NULL) AS good,
COUNT(score >= 60 AND score < 90 OR NULL) AS ok,
COUNT(score < 60 OR NULL) AS terrible
FROM
student
WHERE
class = '1502'
运行结果:
欢迎指正!