我编写了一个返回图表时间序列数据的查询。数据代表通过网络发出的请求,我们以30秒的间隔获取数据,并且我们以5分钟的间隔聚合。其中一些间隔没有信息,因此当完整集看起来像第二个列表时,某些域的结果(时间间隔)将如下所示。
2017-11-01 11:05:00
2017-11-01 11:15:00
2017-11-01 11:35:00
2017-11-01 11:05:00
2017-11-01 11:10:00
2017-11-01 11:15:00
2017-11-01 11:20:00
2017-11-01 11:25:00
2017-11-01 11:30:00
2017-11-01 11:35:00
我的问题是,我们是否可以添加以下查询,以便所有缺失的五分钟间隔都存在,但请求数将为零。基本上用适当的时间戳和0个相应的请求替换丢失的数据?
batch_id只代表我们收到的最新数据集。
select
DATE_FORMAT(FROM_UNIXTIME(`timestamp`)
, '%Y-%m-%d %H:00:00') INTERVAL(MINUTE(FROM_UNIXTIME(`timestamp`))
- MINUTE(FROM_UNIXTIME(`timestamp`)) MOD 5) MINUTE as `time`
, SUM(requests) as requests
from `raw_graphs`
where (`batch_id` = 25) group by `time`