在SQL中通过日期和时间执行聚合

A.A*_*idi 9 sql postgresql timestamp aggregation

我有一个数据集,包含几周的观察,频率为2分钟.我想将时间间隔从2分钟增加到5分钟.问题是观察的频率并不总是相同的.我的意思是,从理论上讲,每10分钟就应该进行5次观察,但通常情况并非如此.请告诉我如何根据平均函数以及观察的时间和日期汇总观测结果.换句话说,基于每5分钟的聚合,而观察的数量对于每5分钟的时间间隔是不同的.此外,我有时间戳格式的日期和时间.

示例数据:

1 2007-09-14 22:56:12 5.39
2 2007-09-14 22:58:12 5.34
3 2007-09-14 23:00:12 5.16
4 2007-09-14 23:02:12 5.54
5 2007-09-14 23:04:12 5.30
6 2007-09-14 23:06:12 5.20
Run Code Online (Sandbox Code Playgroud)

预期成绩:

1 2007-09-14 23:00 5.29
2 2007-09-14 23:05 5.34
Run Code Online (Sandbox Code Playgroud)

Cra*_*ger 8

对这些问题的答案这个问题可能您的问题提供好的解决办法,显示的方式来有效的数据汇总到时间窗口.

基本上,使用avg聚合:

GROUP BY floor(extract(epoch from the_timestamp) / 60 / 5)
Run Code Online (Sandbox Code Playgroud)