gpt4 book ai didi

sql - 当前行的累计值 + 前一行的总和

转载 作者:行者123 更新时间:2023-12-02 05:04:30 25 4
gpt4 key购买 nike

如何将表中的列转换为:

ColumnA   ColumnB
2 a
3 b
4 c
5 d
1 a

对此:

ColumnA          ColumnB
3 a
6(=3+3) b
10(=4+3+3) c
15(=5+4+3+3) d

我有兴趣看看,特别是。你会选择什么方法。

最佳答案

像这样:

;WITH cte
AS
(
SELECT ColumnB, SUM(ColumnA) asum
FROM @t
gROUP BY ColumnB

), cteRanked AS
(
SELECT asum, ColumnB, ROW_NUMBER() OVER(ORDER BY ColumnB) rownum
FROM cte
)
SELECT (SELECT SUM(asum) FROM cteRanked c2 WHERE c2.rownum <= c1.rownum),
ColumnB
FROM cteRanked c1;

这应该给你:

ColumnA    ColumnB
3 a
6 b
10 c
15 d
<小时/>

这里是a live demo

关于sql - 当前行的累计值 + 前一行的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12668785/

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