Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Kumulative SQL-Anzahl

Hier ist eine Möglichkeit, dies mit einem CTE anstelle eines Cursors zu tun:

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

Beachten Sie, dass dies nach Count in absteigender Reihenfolge sortiert wird wie Ihr Beispielergebnis tut. Wenn eine andere Spalte nicht angezeigt wird, die zum Sortieren verwendet werden soll, ersetzen Sie einfach Count in jedem der ORDER BY Klauseln.

SQL-Fiddle-Demo