sql >> Database >  >> RDS >> Sqlserver

Hoe cumulatieve som te krijgen

select t1.id, t1.SomeNumt, SUM(t2.SomeNumt) as sum
from @t t1
inner join @t t2 on t1.id >= t2.id
group by t1.id, t1.SomeNumt
order by t1.id

Voorbeeld van SQL Fiddle

Uitvoer

| ID | SOMENUMT | SUM |
-----------------------
|  1 |       10 |  10 |
|  2 |       12 |  22 |
|  3 |        3 |  25 |
|  4 |       15 |  40 |
|  5 |       23 |  63 |

Bewerken: dit is een algemene oplossing die op de meeste db-platforms werkt. Als er een betere oplossing beschikbaar is voor uw specifieke platform (bijv. gareth's), gebruik die dan!



  1. Is SELECT of INSERT in een functie die vatbaar is voor race-omstandigheden?

  2. Inleiding tot SQL Server

  3. XMLType-knooppunten samenvoegen in Oracle-query

  4. Een procedure uitvoeren binnen een pakket in Oracle