累积非负和/递归累积和计算

时间:2021-01-26 23:54:55

标签: sql postgresql amazon-redshift cumulative-sum

我尝试创建一个 Redshift / Postgres SQL 查询,它每天计算虚拟累积钱包金额。 这个钱包里有存款,钱包里有支出。花费可能超过钱包中的信用额度,但钱包不应该变成负数。最后,我需要每天从钱包中支出的金额,忽略任何用空钱包进行的支出。

我尝试了很多累积 SUM()LAG() 窗口函数,但还没有得到预期的结果。我停留在需要计算一个值的点,包括前一行的这个值的计算结果,我不知道如何处理。

我真的很感激任何帮助!

示例表

<头>
wallet_deposits 支出
2021-01-01 100 30
2021-01-02 0 40
2021-01-03 0 40
2021-01-04 0 65
2021-01-05 15 25
2021-01-06 60 20
2021-01-07 0 0
2021-01-08 0 25
2021-01-09 0 10
2021-01-10 15 25

预期结果

<头>
wallet_deposits 支出 wallet_end_of_day spent_from_wallet
2021-01-01 100 30 70 30
2021-01-02 0 40 30 40
2021-01-03 0 40 0 30
2021-01-04 0 65 0 0
2021-01-05 15 25 0 15
2021-01-06 60 20 40 20
2021-01-07 0 0 40 0
2021-01-08 0 25 15 25
2021-01-09 0 10 5 10
2021-01-10 15 25 0 20

0 个答案:

没有答案