sql >> Database >  >> RDS >> Sqlserver

SQL - lopend totaal wanneer gegevens al gegroepeerd zijn

De ANSI-standaardmanier om een ​​cumulatieve som te maken is:

select t.*, sum(totalpmtamt) over (order by mdate) as runningsum
from #testdata t
order by t.mdate;

Niet alle databases ondersteunen deze functionaliteit.

Als je database die functionaliteit niet ondersteunt, zou ik gaan voor een gecorreleerde subquery:

select t.*,
       (select sum(t2.totalpmtamt)
        from #testdata t2
        where t2.mdate <= t.mdate
       ) as runningsum
from #testdata
order by t.mdate;


  1. Meerdere door tabs gescheiden tekstbestanden invoegen in MySQL met Python?

  2. MySQL-update of hernoem een ​​sleutel in JSON

  3. JSON codeert MySQL-resultaten

  4. Hoe DAYOFWEEK() werkt in MariaDB