私は以下の行を持っています。前の行にアクセスし、その値を現在の行で割ります。すべての行のために、私は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
を私はOを持つ集約関数SUMを使用してみました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プロシージャ、CREATE関数を使用することはできません... –
興味深い問題! –