我们经常会用到按日期汇总某些数据,一般我们使用group by + 统计函数来进行查询,得到的结果如下图所示:
在实际应用场景中,并不是每个时间段都有数据,所以我们汇总出来的结果中,日期是不连续的。而为了更形象的显示数据随时间的变化趋势,在进行曲线图展示时,就要求数据集的日期是连续的,如下图所示:
解决方案:使用DATE_SUB函数来获取连续日期。具体解决步骤:
1.创建一个工具表tool_num,这个表只有一个字段id,类型为int。
2.根据实际情况,向tool_num表从0开始插入数据。
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
通过连续日期关联业务表进行统计,具体sql组织方式这里不再赘述。
来源地址:https://blog.csdn.net/willowleaf/article/details/127134957