2019/09/11
[SQL] ウィンドウ関数で累積和を計算する方法
id | date | profit |
---|---|---|
0 | 2019-03-01 | 1000 |
1 | 2019-03-04 | 500 |
2 | 2019-04-05 | -300 |
3 | 2019-05-01 | 100 |
上記 table1 から profit の累積和(cumlative_profit)を求める QUERY は以下1。
1 2 3 4 5 | SELECT *, SUM (profit) OVER W AS cumulative_profit FROM table1 WINDOW W AS ( ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) ORDER BY date ; |
これは、以下のように書いたのと同等。
1 2 3 4 | SELECT *, SUM (profit) OVER ( ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_profit FROM table1 ORDER BY date ; |
最近読み終わったのだけど、SQL に関しては以下の本が秀逸。 もちろん、ウィンドウ関数の使い方もとてもわかりやすく書いてある。 お勧め。