sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man får kumulativ summa

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

Exempel på SQL Fiddle

Utdata

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

Redigera: detta är en generaliserad lösning som fungerar på de flesta db-plattformar. När det finns en bättre lösning tillgänglig för din specifika plattform (t.ex. gareths), använd den!



  1. Hur använder man GROUP BY för att sammanfoga strängar i MySQL?

  2. Få värde baserat på max för en annan kolumn grupperad efter en annan kolumn

  3. XMLAGG med RTRIM-problem

  4. Hur man skapar en användare/databas i skript för Docker Postgres