gpt4 book ai didi

sql - 如何计算自下而上的累计和?

转载 作者:行者123 更新时间:2023-11-29 12:19:25 25 4
gpt4 key购买 nike

我在 PostgreSQL 中有一个查询,结果是:

itemorder   name    qty
1 A -20
2 A2 350
3 A 50
4 A -10
5 A2 10

itemorder 列给出了我期望看到的正确的行顺序。我需要从下到上传递行并计算一个初始值为 100 的新列,并为 A< 的每一行执行 + qty/

itemorder   name    qty       modifyed_sum
1 A -20 120 / 140 + (-20)
2 A2 350 140 / not A
3 A 50 140 / 90 + 50
4 A -10 90 / 100 + (-10)
5 A2 10 100 / not A

我该怎么做?

最佳答案

试试这个

SELECT 100+ Sum(CASE WHEN name = 'a' THEN qty ELSE 0 END)OVER(ORDER BY itemorder DESC) as modifyed_sum,
qty,
name,
itemorder
FROM Yourtable
ORDER BY itemorder ASC

另一种方式

SELECT 100 + (SELECT Sum(CASE WHEN b.name = 'a' THEN b.qty ELSE 0 END)
FROM yourtable b
WHERE a.itemorder <= b.itemorder),
qty,
name,
itemorder
FROM yourtable a
ORDER BY itemorder ASC

关于sql - 如何计算自下而上的累计和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34487883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com