Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como obter soma acumulada

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

Exemplo de violino SQL

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

Editar: esta é uma solução generalizada que funcionará na maioria das plataformas de banco de dados. Quando houver uma solução melhor disponível para sua plataforma específica (por exemplo, gareth's), use-a!