(1)统计一段非连续时间内的数据情况,要求时间连续显示
关键解决思路:
使用变量提前创建出连续时间,然后利用left join与group by 去统计
以下sql能利用变量创建出连续的时间,可按月累加、按日累加甚至按小时累加
DATE_ADD函数:处理时间累加
INTERVAL:
DATE_FORMAT函数:时间日期格式化
SELECT DATE_FORMAT(@cdate := DATE_ADD(@cdate, INTERVAL +1 MONTH),'%Y-%m') cday
FROM( SELECT @cdate := DATE_ADD('2018-01-01', INTERVAL -1 MONTH) FROM tt1 LIMIT 15) t0
WHERE DATE(@cdate) <= DATE_ADD('2018-12-01', INTERVAL -1 MONTH)
- 1
- 2
- 3