カーソルの代わりに 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
のそれぞれで