Đây là một cách để làm điều đó với CTE thay vì con trỏ:
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
Lưu ý rằng điều này sắp xếp theo thứ tự Count
giảm dần giống như kết quả mẫu của bạn. Nếu có một số cột khác không được hiển thị nên được sử dụng để đặt hàng, chỉ cần thay thế Count
trong mỗi ORDER BY
mệnh đề.