ID、値などの結果を含むクエリがあります。私が望むのは、ID の順に値を取得し、別の列で累積値を計算することです。私の簡略化されたコードを見てください:
declare @TempTable Table
(
ID int,
Value int
)
insert into @TempTable values
(1, 10),
(2, -15),
(3, 12),
(4, 18),
(5, 5)
select t1.ID, t1.Value, SUM(t2.Value) AccValue from @TempTable t1
inner join @TempTable t2 on t1.ID >= t2.ID
group by t1.ID, t1.Value
order by t1.ID
Result:
ID Value AccValue
1 10 10
2 -15 -5
3 12 7
4 18 25
5 5 30
私が思いついたのは、その目的のために結果とそれ自体の間に内部結合を使用することです。しかし、膨大な量のデータの場合、明らかにパフォーマンスの問題です。
それを行う他の代替手段はありますか?