按条件统计每天的数量
SELECT
created_at,
count( CASE WHEN parent_id <> 0 THEN 1 ELSE null END) total,
count( CASE WHEN task_status = 0 AND parent_id <> 0 THEN 1 ELSE null END) no_start,
count( CASE WHEN task_status = 3 AND parent_id <> 0 THEN 1 ELSE null END) finish,
count( CASE WHEN task_status = 4 AND parent_id <> 0 THEN 1 ELSE null END) delay_finish,
count( CASE WHEN task_status = 5 AND parent_id <> 0 THEN 1 ELSE null END) no_finish
FROM
do_inspect_record
where DATE_SUB( CURDATE( ), INTERVAL 30 DAY ) <= created_at
GROUP BY DATE_FORMAT(created_at,'%Y-%m-%d')
ORDER BY created_at DESC
注意:使用count时ELSE后面是null,不可为0。使用sum时ELSE后面可以是null或0,但是当某个条件下的数量为0时,为null则为null,为0则为0。