やりたいこと
日付と時間のデータを使って、1行ずつ累積して合計時間を算出したい。
毎回忘れるのでメモ
SQL
SELECT
date,
minutes,
SUM(minutes) OVER(ORDER BY date) AS total_minutes
FROM mytable
ORDER BY date
でdateの順番に上から足してくれる
※ PARTITION BY
していないので、全部の行を順番に累積
結果
![スクリーンショット 2020-01-15 16.35.16.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F333838%2Fc40cfe30-606e-f62c-1ba6-623162741c47.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b45874229db10e57623c08c88cb41bfe)
おまけ
ORDER BY
を指定しないと全ての行の和を計算する
SELECT
date,
minutes,
SUM(minutes) OVER() AS total_minutes
FROM mytable
![スクリーンショット 2020-01-15 16.42.51.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F333838%2F2b9958ae-ec90-9c57-ab87-348f5e71b257.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ebdc34dd7927f39ffdce251846e67d46)