最近在研究报表,要做一个实时的统计一天各个时段的数据增量,以2小时为一组统计,发现这个sql语句不简单,和大家分享一下我的写法。
做出来的效果如下:
sql语句如下:
select count(distinct ro.retailUserId) AS retailUser,
DATE_FORMAT(DATE_ADD(CONCAT(DATE_FORMAT(ro.createdTime, '%Y-%m-%d %H:'),
(FLOOR(DATE_FORMAT(ro.createdTime, '%i') / 60))*60,':00'),INTERVAL 2 HOUR),'%H:%i:%s')
currentTime
from retail_order ro
where ro.status not in ('4','6')
and ro.createdTime>=CURDATE()
and ro.createdTime<DATE_ADD(CURDATE(),INTERVAL 1 DAY)
GROUP BY currentTime ORDER BY NULL