目前有一个需求查询产品的实时数据,就是当天的每间隔5分钟的用户数,最后研究出的方案:
SELECT count(roleId),sec_to_time(time_to_sec(`time`)- time_to_sec(`time`)%(5*20)) as intervals from `login-2020-04-02`
where appId = 1000057
group by intervals
解决过程中上网找了以下几种方法:
1、查询每分钟的记录
SELECT Table,
DATE_FORMAT( 时间字段, '%H:%i' ) AS time
FROM
表名称
GROUP BY
time
2、筛选直接间隔时间
使用把(15*60)中的15改成你要间隔的时间,这里是查询间隔15分钟的数据
SELECT sec_to_time(time_to_sec(时间字段)- time_to_sec(时间字段)%(15*60)) as intervals from tablename
group by intervals
3、筛选指定间隔时间
SELECT FLOOR(UNIX_TIMESTAMP(时间字段)/(15 * 60)) AS timekey
FROM table
GROUP BY timekey;