sql >> Databáze >  >> RDS >> Sqlserver

Jak získat kumulativní součet

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

Příklad SQL Fiddle

Výstup

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

Upravit: toto je zobecněné řešení, které bude fungovat na většině platforem db. Pokud je pro vaši konkrétní platformu k dispozici lepší řešení (např. gareth), použijte ho!



  1. Použití vzorů pracovních postupů ke správě stavu libovolné entity

  2. Pomocí sp_help_schedule v SQL Server

  3. Jak pomocí Oracle SQL získá jeden výstup číslo dne v týdnu a den v týdnu?

  4. Vytvoření Oracle Sequence Trigger