我有下面的行,我想访问先前的行并将其值除以当前行。对于每一行,我需要计算Vi的值,该VI值等于VI-1/VI,这意味着:访问先前的行并将它的值除以当前行
鉴于表
Table T
id value out
1 100
2 200
3 10
4 50
我要生成这些值
V1 = 100
V2= 100/200 = 0.5
V3 = 0.5/10 = 0.05
V4 = 0.05/50 = 0.001
所以在最后我想下面的输出:
id value out
1 100 100
2 200 0.5
3 10 0.05
4 50 0.001
我尝试使用聚合函数SUM带O VER(),但我不知道如何,因为我需要来划分,而不是求和值
SELECT id, value, SUM(value) OVER(ORDER BY id ROWS BETWEEN
1 PRECEDING AND 1 PRECEDING)/value as out
FROM T
的样本数据解决这个问题:
CREATE TABLE t(
id INT,
value INT
);
INSERT INTO t VALUES
(1, 100), (2, 200), (3, 10), (4, 50);
你是什么意思,你不能使用T-SQL? –
我的意思是我不能使用CREATE过程,创建函数... –
有趣的问题! –