sql >> Database teknologi >  >> RDS >> Sqlserver

SQL kumulativt antal

Her er en måde at gøre det på med en CTE i stedet for en markør:

WITH Base AS ( SELECT ROW_NUMBER() OVER (ORDER BY [Count] DESC) RowNum, [Dept], [Count] FROM SR ) SELECT SR.Dept, SR.Count, SUM(SR2.[Count]) Total FROM Base SR INNER JOIN Base SR2 ON SR2.RowNum <= SR.RowNum GROUP BY SR.Dept, SR.Count ORDER BY SR.[Count] DESC

Bemærk, at dette er sorteret efter faldende Count ligesom dit prøveresultat gør. Hvis der er en anden kolonne, der ikke er vist, som skal bruges til bestilling, skal du bare erstatte Count i hver af ORDER BY klausuler.

SQL Fiddle Demo



  1. Hvad betyder "vælg" den samme tabel som "fra"?

  2. Installation af Oracle Instant Client

  3. Adgang til MySQL-lagret procedureoutput i Zend Framework 2

  4. Klip streng efter første forekomst af et tegn