SELECT
DATE_FORMAT( apply.CREATE_TIME, '%Y-%m-%d' ) AS dateTime,
sum( CASE WHEN apply.STATUS = '0' THEN '1' ELSE '0' END ) s0,
sum( CASE WHEN apply.STATUS = '1' THEN '1' ELSE '0' END ) s1,
sum( CASE WHEN apply.STATUS = '2' THEN '1' ELSE '0' END ) s2,
sum( CASE WHEN apply.STATUS = '4' THEN '1' ELSE '0' END ) s3
FROM
USER_APPLY apply
WHERE
yearweek( date_format( apply.CREATE_TIME, '%Y-%m-%d' ) ) = yearweek( now() )
GROUP BY dateTime
ORDER BY dateTime ASC
sql如上。统计查询的是本周中,status状态为0,1,2,4的人数各有多少。结果如下:
有一点需要改进的是,某天没有数据时,默认全部统计为0,而不是不显示这个日期。求教大神怎么优化一下,自己学术不到家,搞不出来了。