2017-01-24 2 views
0

Angenommen Aufsummierung Ich habe die folgenden Daten:SQL Server: eine Spalte nacheinander

ID  Characteristic  Number 
1    A    3 
2    B    4 
3    A    1 
4    A    6 

Ich möchte eine resultierende Tabelle, die die Anzahl Spalte wie folgt aufsummiert:

ID  Characteristic  Number   Sum 
1    A    3    3 
2    B    4    7 
3    A    1    8 
4    A    6    14 

Grundsätzlich fügt die neue Nummer zur vorherigen Summe und ist nach der ID geordnet.

Vielen Dank im Voraus für die Hilfe.

Antwort

1

In SQL Server 2012+, können Sie einfach die ANSI-Standard kumulative Summenfunktion verwenden:

select id, characteristic, number, sum(number) over (order by id) as [sum] 
from t; 
0

In SQL (> 2012), können Sie nur verwenden, um die sum Funktion:

select id, characteristic, number, sum(number) over (order by id) as [sum] 
from t; 
0

Std kumulative Summe

select t1.*, SUM(t2.Nuber) as sum 
from table t1 
inner join table t2 on t1.id >= t2.id 
group by t1.id, t1.Number 
order by t1.id;