SQLServerで累積値(累積比)を求める
SQLServerで累積値(累積比)を求めるにはちょっとした
工夫が必要です。
調べたのでメモ書きしておきます。
累積値(累積比)を取得する
累積値(累積比)を取得するSQLは以下のようになります。
--テーブルを作成する
CREATE TABLE test_table
(
no int
,val1 int
,val2 DECIMAL(5,1)
)
--データを挿入する
INSERT INTO test_table VALUES ( 1, 10, 10.3 )
INSERT INTO test_table VALUES ( 2, 20, 20.3 )
INSERT INTO test_table VALUES ( 3, 30, 30.3 )
INSERT INTO test_table VALUES ( 4, 40, 40.3 )
--累積値を取得する
SELECT
A.no
,A.val1
,A.val2
,SUM(B.val1) AS 累計1
,SUM(B.val2) AS 累計2
FROM
test_table AS A
INNER JOIN test_table AS B ON
A.no >= B.no
GROUP BY
A.no
,A.val1
,A.val2
ORDER BY
no
DROP TABLE test_table
実行結果は
no val1 val2 累計1 累計2 1 10 10.3 10 10.3 2 20 20.3 30 30.6 3 30 30.3 60 60.9 4 40 40.3 100 101.2
これで無事累積値(累積比)を取得することができます。
