SQL根据不同的条件查询count
在一条语句中根据不同的条件count对应的数据。
1 |
|
以上语句可以根据两个不同的条件一次计算出对应的count值,很明显的用到的是IF函数。IF( expr1, expr2, expr3)。
以下来自官方文档的说明
If expr1 is TRUE (expr1 <> 0 and expr1 <> NULL), IF() returns expr2. Otherwise, it returns expr3.
用到count中,即if的条件为真,则if子句返回true,否则返回null。count子句依据该返回值进行计数。
具体的条件依据需求变化,例如需要去重,可以变为count(distinct if(条件, expr2, expr3))
同理,if也可用于sum等其他聚合函数计算。
注意:
第一条sql语句中的返回值不一定为true, null 可依据需求调整,该文章仅作参考。
该文章测试环境为 Mysql 5.7.25
SQL根据不同的条件查询count
https://maoxianck.github.io/程序/Sql/sql根据不同的条件查询count/