sql – 累积前一行的当前行和的值

您将如何从表中变换列:
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

我有兴趣看到esp.你会选择什么方法

解决方法

喜欢这个:
;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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...