mysql count方法的高级用法示例:
程序员文章站
2024-03-20 22:36:10
...
最近在业务中遇到了一个纠结的统计问题,既想要totalCount,又想要successCount / failCount。
具体就不距离了。
自己整理了下,一个简单的小例子就能说明问题。
如下:
id | name | age | score |
---|---|---|---|
1 | zhangsan | 10 | 1 |
2 | lisi | 11 | 1 |
3 | lisi | 12 | 0 |
4 | wangwu | 13 | 1 |
表名为:aaa
sql 语句:
SELECT
name,age,
count(1) as count1,
count(score = 1 or NULL ) as count2,
count(case when score = 1 then 1 else 0 end) as count3,
count(case when score = 1 then 1 else NULL end) as count4
FROM `aa`
GROUP BY
name,age
结果如下:
懂的人自然懂,一切尽在不言中。
需要注意的点:
- case when 是基础
- 注意 此处 NULL 和 0 可不一样,0也会被count统计到
- group by 可能也会是个问题,列的问题。不太相关,不提。