select DATE( createtime) date , createtime, count(1) as count from order表 where DATEDIFF( now(), createtime)<=7
group by date ;

12 月九号没有;
给他在关联一张日期的表;
|
|
|
|
但是呢, 我们不想这么麻烦; 一个SQL 就可以;
套一层 :
select a.click_date,ifnull(b.count,0) as count
from (
SELECT curdate() as click_date
union all
SELECT date_sub(curdate(), interval 1 day) as click_date
union all
SELECT date_sub(curdate(), interval 2 day) as click_date
union all
SELECT date_sub(curdate(), interval 3 day) as click_date
union all
SELECT date_sub(curdate(), interval 4 day) as click_date
union all
SELECT date_sub(curdate(), interval 5 day) as click_date
union all
SELECT date_sub(curdate(), interval 6 day) as click_date
) a left join (
-- 原来的sql
select DATE( createtime) date , createtime, count(1) as count from order表 where DATEDIFF( now(), createtime)<=7
group by date
) b on a.click_date = b.date;
参看自: https://blog.youkuaiyun.com/ljxbbss/article/details/78028424
本文介绍了一种SQL技巧,用于在数据报告中补全最近七天内可能缺失的日期记录,确保数据完整性和分析准确性。通过创建临时日期表或使用子查询,可以有效地解决因某些日期无数据而导致的报表不连续问题。
5578

被折叠的 条评论
为什么被折叠?



