累計
CoddyのSQLジャーニー「応用」セクションの一部。レッスン 25/27。
累積合計とは、ORDER BYを指定したウィンドウ内でのSUMです。これにより、集計値が行ごとに増えていきます。
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueORDER BYがない場合、ウィンドウはすべての行を対象とするため、各行に総合計が表示されます。指定すると、その順序でウィンドウが1行ずつ広がるため、各行には自分自身とそれより前のすべての行だけが含まれます。
グループごとに累計をリセットするには、PARTITION BYを追加します。たとえば、地域ごとの収益の累計を日ごとに計算します。
チャレンジ
簡単利用可能なテーブルと列:
revenue:region,day,amount
region、day、amount、およびregion_running_totalを返します。これは、この日まで(この日を含む)のその地域のamountの累計です。累計は地域ごとにリセットしてください。
ウィンドウにPARTITION BYを使用します。region、次にdayの順に並べます。
自分で試してみよう
SELECT region, day, amount,
-- ここに region_running_total 列を追加する
FROM revenue
ORDER BY region, day
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
応用のすべてのレッスン
自分で練習してみよう: SQLプレイグラウンド