mysql数据库如何实现连续日期的统计查询

我们经常会用到按日期汇总某些数据,一般我们使用group by + 统计函数来进行查询,得到的结果如下图所示:
mysql数据库如何实现连续日期的统计查询_第1张图片
在实际应用场景中,并不是每个时间段都有数据,所以我们汇总出来的结果中,日期是不连续的。而为了更形象的显示数据随时间的变化趋势,在进行曲线图展示时,就要求数据集的日期是连续的,如下图所示:
mysql数据库如何实现连续日期的统计查询_第2张图片
解决方案:使用DATE_SUB函数来获取连续日期。具体解决步骤:
1.创建一个工具表tool_num,这个表只有一个字段id,类型为int。
在这里插入图片描述
2.根据实际情况,向tool_num表从0开始插入数据。
mysql数据库如何实现连续日期的统计查询_第3张图片
3.通过tool_num和DATE_SUB函数获取从今天开始连续往前12天

SELECT DATE_SUB( CURRENT_DATE, INTERVAL id day ) dt FROM tool_num WHERE id BETWEEN 0 AND 11 

连续12个月

SELECT DATE_SUB( CURRENT_DATE, INTERVAL id month ) dt FROM tool_num WHERE id BETWEEN 0 AND 11 

连续12年

SELECT DATE_SUB( CURRENT_DATE, INTERVAL id year ) dt FROM tool_num WHERE id BETWEEN 0 AND 11

4.通过连续日期关联业务表进行统计,具体sql组织方式这里不再赘述。

你可能感兴趣的:(mysql)