如何解决累积非负和/递归累积和计算
我尝试创建一个 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 |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。