sql >> Database teknologi >  >> RDS >> Sqlserver

Akkumuleret værdi af nuværende række + summen af ​​tidligere rækker

Sådan:

;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;

Dette skulle give dig:

ColumnA    ColumnB
3             a
6             b
10            c
15            d
 

Her er en live demo



  1. Kan ikke validere, med novalidate mulighed

  2. MySQL fejl nr. 121

  3. SQL TRUNCATE-syntaks – Listet efter DBMS

  4. Hvordan indsætter man resultatsæt returneret af en oracle-lagret procedure i en anden tabel ved hjælp af anden lagret procedure?