累計
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を日ごとに累計します。
チャレンジ
簡単利用可能なテーブルと列:
revenue:region、day、amount
region、day、amount、およびregion_running_totalを返してください:この日まで(この日を含む)のそのregionにおける累積amountです。累計はregionごとにリセットされる必要があります。
ウィンドウでPARTITION BYを使用してください。region、次にdayの順に並べ替えます。
自分で試してみよう
SELECT region, day, amount,
-- SUM(amount) OVER (PARTITION BY region ORDER BY day)
FROM revenue
ORDER BY region, day
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
応用のすべてのレッスン
自分で練習してみよう: SQLプレイグラウンド