sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo obtener la suma 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

Ejemplo de violín SQL

Salida

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

Editar: esta es una solución generalizada que funcionará en la mayoría de las plataformas de base de datos. Cuando haya una mejor solución disponible para su plataforma específica (p. ej., la de Gareth), ¡utilícela!