【发布时间】:2019-01-28 21:17:03
【问题描述】:
A 有一个表格,其中每行相隔 300 秒(或 5 分钟)。我需要聚合每个小时和半小时的数据,聚合之前的所有内容,包括一小时或半小时。
我试过这段代码:
SELECT
to_timestamp(floor(a / 1800 )) *
1800)
AT TIME ZONE 'UTC' as interval_alias, SUM(b) as b_sum
FROM TABLE_NAME GROUP BY interval_alias
...它聚合每小时和半小时的数据,但它汇总了每小时和半小时后的值。
表格如下所示:
a | b
-------------------------
1533045600 | 3
1533045900 | 5
1533046200 | 6
1533046500 | 3
1533046800 | 5
1533047100 | 2
1533047400 | 3
1533047700 | 8
1533048000 | 5
1533048300 | 5
1533048600 | 6
上面代码的实际结果是:
a | b
-------------------------
1533045600 | 24
1533047400 | 27
想要的输出是:
a | b
-------------------------
1533045600 | 3
1533047400 | 24
【问题讨论】:
-
无法重现您的错误。 postet SQL 看起来不正确
-
你的数据列
a的数据类型是什么? -
我的错误我已经编辑了问题,都是数字
标签: postgresql aggregate