当我们要查询某个表的状态统计数量,并合并为一行
例如:
查询状态小于5的数量,查询状态等于4的数量则
SELECT bc.code,
sum(case when bc.`status` < 5 THEN 1 ELSE 0 END) count0,
sum(case when bc.`status` < 4 THEN 1 ELSE 0 END) count1
from basic_table bc
LEFT JOIN li li ON li.code = bc.code
GROUP BY bc.code
这时运行后的数据为
code | count0 | count1
1 2 2
2 5 4
3 5 0
如果在case when 要根据时间进行统计
:当前时间减去一个月与数据时间做对比
sum(case when bc.time < DATE_SUB(NOW(), INTERVAL 1 MONTH) THEN 1 ELSE 0 END) cs_count,