【发布时间】:2017-05-17 20:19:37
【问题描述】:
在我的数据库中,我有如下行:
date , value
16:13:00, 500
16:17:00, 700
16:20:00, 0
现在我想从 16:00:00 到 17:00:00 对值进行“特殊总和”。所以直到 16:13 我们假设我们有 0。 所以特殊的总和看起来像(我会省略秒):
...
0 + -- (16:12)
500 + -- (16:13)
500 + -- (16:14)
500 + -- (16:15)
500 + -- (16:16)
700 + -- (16:17)
700 + -- (16:18)
700 + -- (16:19)
0 + -- (16:20)
...
所以我在数据库中只有值的变化以及发生这种变化的时间。我想总结整个小时。结果应该是 4100。 使用 PostgreSQL 在 sql 中进行这种求和的最佳方法是什么?
最好的
【问题讨论】:
-
请添加您需要的输出。如果这只是 4100 那么下面的答案是正确的。对于缺少的时间单位,最佳做法是使用
generate_series()生成所有可能的时间间隔,然后使用left join您的数据并进行聚合。
标签: sql postgresql sum