TOP

MySQL实现按天分组统计,提供完整日期列表,无数据自动补0
2019-08-04 00:13:57 】 浏览:47
Tags:MySQL 实现 分组 统计 提供 完整 日期 数据 自动

业务需求
最近要在系统中加个统计功能,要求是按指定日期范围里按天分组统计数据量,并且要能够查看该时间段内每天的数据量。


SELECT
    @cdate: = date_add(@cdate, interval - 1 day) as date_str, 0 as date_count
FROM(SELECT @cdate: = date_add(CURDATE(), interval + 1 day) from t_table1) t1


2、业务统计查询也按上述日期查询给统计日期和数量设置别名


SELECT
    FROM_UNIXTIME(m.sdate, '%Y-%m-%d') as date_str, count( * ) as date_count
from t_table1 as m
group by FROM_UNIXTIME(m.sdate, '%Y-%m-%d')


3、把两个查询用左连接合起,没数量的日期填0


SELECT t1.date_str, COALESCE(t2.date_total_count, 0) as date_total_count
FROM(
    SELECT @cdate: = date_add(@cdate, interval - 1 day) as date_str FROM(SELECT @cdate: = date_add(CURDATE(), interval + 1 day) from t_table1) tmp1 WHERE @cdate > '2018 - 12 - 01'
) t1
LEFT JOIN(
    SELECT FROM_UNIXTIME(m.sdate, '%Y-%m-%d') as date_str, count(*) as date_total_count FROM t_table1 as m WHERE m.sdate between XXXX and XXXXX GROUP BY FROM_UNIXTIME(m.sdate, '%Y-%m-%d')
) t2
on t1.date_str = t2.date_str


查询结果如下图所示:




MySQL实现按天分组统计,提供完整日期列表,无数据自动补0 https://www.cppentry.com/bencandy.php?fid=57&id=228129

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL按日期分组并统计截止当前时.. 下一篇MySQL实现sequence功能的代码