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 は以下。 ```sql 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; ``` これは、以下のように書いたのと同等。 ```sql SELECT *, SUM(profit) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_profit FROM table1 ORDER BY date; ``` 最近読み終わったのだけど、SQL に関しては以下の本が秀逸。 もちろん、ウィンドウ関数の使い方もとてもわかりやすく書いてある。 お勧め。