获取指定日期内的 日期条数(缺少的天数自动补0)

获取指定日期内的 日期条数(缺少的天数自动补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 web_reviews) tmp1 where @cdate>"2020-11-10"  
) t1
LEFT JOIN(
    SELECT date(o.created_at) as date_str, count(*) as date_total_count FROM mejosi_reviews  as o WHERE o.created_at>"2020-11-10"   GROUP BY date(o.created_at)
) t2
on t1.date_str = t2.date_str  ORDER BY `t1`.`date_str`  ASC

在这里插入图片描述

讲解
  1. SELECT @cdate:= date_add(@cdate, interval - 1 day) as date_str FROM(SELECT @cdate:= date_add(CURDATE(), interval + 1 day) from web_reviews) tmp1 where @cdate>“2020-11-10”
    这句是为了整理日期数据
    这个里面引用了一个数据表(web_reviews)
    没有获取数据的作用 只是需要保障条数足够撑起日期的天数 主要是为了填充日期使用
    后面还有个时间 是 需要查询数据列表的初始时间
    在这里插入图片描述

  2. SELECT date(o.created_at) as date_str, count(*) as date_total_count FROM mejosi_reviews as o WHERE o.created_at>“2020-11-10” GROUP BY date(o.created_at)
    这步没什么可说的 就是基础的分组

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值