gpt4 book ai didi

sql - 查询 - 与分区子句中的条件求和?

转载 作者:行者123 更新时间:2023-12-02 10:34:01 25 4
gpt4 key购买 nike

假设我在 SQL Server 中有下表:

ColA     ColB     ColC
A 1 100
A 0 -100
A 1 -100
A 0 100
A 1 100
A 1 -100
B 1 200
B 1 -200
B 1 200
C 0 300
C 1 -300

我希望实现的目标(用语言来说)是:创建一个新列,Conditional_Sum = ColA 中每个值的 ColC 总和,其中 ColB = 1ColC > 0

因此,最终结果将是(添加到 RowNum 中以显示我如何获取值):

Rownum     ColA     ColB     ColC      Conditional_Sum
1 A 1 100 200 (rows 1+5)
2 A 0 -100 200 (rows 1+5)
3 A 1 -100 200 (rows 1+5)
4 A 0 100 200 (rows 1+5)
5 A 1 100 200 (rows 1+5)
6 A 1 -100 200 (rows 1+5)
7 B 1 200 400 (rows 7+9)
8 B 1 -200 400 (rows 7+9)
9 B 1 200 400 (rows 7+9)
10 C 0 300 0 (no rows match)
11 C 1 -300 0 (no rows match)

所以,我的伪 SQL 是:

Sum(ColC) Over(Partition By ColA, ColB=1,ColC>0) as Conditional_Sum

如何在我的数据集中实现这种结果?

谢谢!!!!!!

最佳答案

试试这个:

Sum(case when ColB = 1 and ColC > 0 then ColC else 0 end) over(partition by ColA)

我的答案假设第 7 行到第 9 行的条件总和应该是 400。

关于sql - 查询 - 与分区子句中的条件求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18515855/

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