【发布时间】:2019-03-20 07:13:42
【问题描述】:
我在 Redshift 中有一件有趣的事情要做。说,我有一张这样的桌子:
index,total,delta
0,3,null
1,5,2
2,10,5
3,11,1
4,null,4
5,null,6
6,null,2
其中delta 是每个total 与前一行的total 之间的差异。在这里,我的deltas 与我的totals 来自不同的来源,因此可以在没有收到更新的totals 的情况下接收deltas。
如何根据deltas 估算totals?像这样:
index,total,delta
0,3,null
1,5,2
2,10,5
3,11,1
4,15,4
5,21,6
6,23,2
我在 NVL(total, LAST_VALUE(total IGNORE NULLS) OVER (ORDER BY index ROWS UNBOUNDED PRECEDING) + SUM(delta) OVER (ORDER BY index ROWS UNBOUNDED PRECEDING) 附近的某个地方乱七八糟,但这并不完全可行 - 我只想 SUM 和 deltas 没有对应的 total。
【问题讨论】:
标签: sql amazon-redshift window-functions cumulative-sum