Ето начин да го направите с CTE вместо с курсор:
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
Имайте предвид, че това е подреждане по низходящ Count
както прави резултатът от вашата проба. Ако има друга колона, която не е показана и трябва да се използва за подреждане, просто заменете Count
във всеки от ORDER BY
клаузи.