mysql 按时间分组,中间日期不连续,把日期补全的方法

例如你统计一周的数据,然后中间的数据都不存在会出现只有2条数据
例如:2019-08-01 ,2019-08-07;mysql排序只有2条,你需要8条数据
吧中间补全,可以用这种方式

SELECT data.day,IFNULL(data.count, 0), day_list.day as date from
(select DATE_FORMAT(create_at, ‘%Y-%m-%d’) day, count(id) count from user GROUP BY day) data
right join
(SELECT @date := DATE_ADD(@date, interval 1 day) day from
(SELECT @date := DATE_ADD(‘2019-08-01’, interval -1 day) from user)
days limit 5) day_list on day_list.day = data.day

我实现不了,一般就出现了2条,可以贴下user表的表结构和一点数据吗?sql和你一样,表数据 INSERT INTO user(id, day, create_at) VALUES (1, ‘2019-08-01’, ‘2019-08-01 12:01:01’); INSERT INTO user(id, day, create_at) VALUES (2, ‘2019-08-10’, ‘2019-08-10 12:01:01’); 表就这3个字段。我执行了你的sql, date就一个2019-08-01一个2019-08-02,是我那个地方有问题嘛
这是我遇到的问题
我发现的原因是:这个有限制,那个limit 28如果大于那张表的总条数显示也是只会显示那么多。例如你数据库总共2条数据,limit 28也只会显示出来2条,只有总条数大于28的时候才会显示limit的条数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值