MySQL查询最近7天的分组数据,无则补零

需求是:有个查询最近7天的折线图,这个就要求没有数据就要补0

现在表名为:wo_work_order
时间字段为:create_time

SQL如下:

SELECT
	DATE_FORMAT( a.timeDay, '%Y-%m-%d' ) AS day,
	IFNULL( b.count, 0 ) AS count
FROM
	(
	SELECT
		curdate( ) AS timeDay UNION ALL
	SELECT
		date_sub( curdate( ), INTERVAL 1 DAY ) AS timeDay UNION ALL
	SELECT
		date_sub( curdate( ), INTERVAL 2 DAY ) AS timeDay UNION ALL
	SELECT
		date_sub( curdate( ), INTERVAL 3 DAY ) AS timeDay UNION ALL
	SELECT
		date_sub( curdate( ), INTERVAL 4 DAY ) AS timeDay UNION ALL
	SELECT
		date_sub( curdate( ), INTERVAL 5 DAY ) AS timeDay UNION ALL
	SELECT
		date_sub( curdate( ), INTERVAL 6 DAY ) AS timeDay 
	) a
	LEFT JOIN (
	SELECT
		date( d.create_time ) AS day,
		count(1) AS count
	FROM
		wo_work_order d 
		-- 在这里进行条件判断
		WHERE d.status = '关闭'
	GROUP BY
		date( d.create_time ) 
	) b ON a.timeDay = b.day 
ORDER BY
	day

结果输出如下:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值