我有一个查询结果,如 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
我想出的是为此目的在结果和自身之间使用内部连接。但是对于大量数据,这显然是一个低性能问题。
还有其他选择吗?