我有下面的行,我想訪問先前的行並將其值除以當前行。對於每一行,我需要計算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過程,創建函數... –
有趣的問題! –