sql优化之统计日期
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,而不是不显示这个日期。求教大神怎么优化一下,自己学术不到家,搞不出来了。
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,而不是不显示这个日期。求教大神怎么优化一下,自己学术不到家,搞不出来了。
...全文
相关推荐
sql中的按日期统计问题
**日期字段的索引优化** 当处理大量数据时,对日期字段创建索引可以显著提高查询性能。但要注意,索引可能会增加写操作的开销。通过以上方法,我们可以有效地解决SQL中的按日期统计问题。
ASP统计数据库中不同日期的数据个数
以上就是使用ASP统计数据库中不同日期数据个数的基本方法。在实际项目中,你还需要考虑错误处理、性能优化(如使用存储过程)以及数据安全问题,确保代码的健壮性和安全性。
mysql 获取规定时间段内的统计数据
可以考虑将时间字段存储为日期类型,然后直接与日期值进行比较。总之,通过灵活运用SQL语句和日期函数,我们可以轻松地从MySQL数据库中获取规定时间段内的统计数据。
SQL对数据进行按月统计或对数据进行按星期统计的实例代码
总的来说,这个实例代码提供了一个基础的解决方案,适用于简单的按月统计需求。但在实际应用中,可能需要根据具体数据库环境和业务需求,优化和调整这些查询策略。
统计报表 -- sql统计语句
需要数据统计页面,肯定需要导出数据,于是,边学边写,完成了一段sql~ 最早的版本是这样的:分三条sql查出三种不同的状态的记录数(总记录,未支付,已支付) SELECT COUNT(*) AS RecordCount FROM t_record WHERE CreateTime >= '2019-01-01 00:00:00' AND CreateTime < '2019-0...


Java SE
