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
これで無事累積値(累積比)を取得することができます。