Menu
Coddy logo textTech

累計

CoddyのSQLジャーニー「応用」セクションの一部。レッスン 25/27。

累積(累計)合計は、ORDER BY を指定したウィンドウ上の SUM です。これにより、集計値が行ごとに増加するものになります。

SELECT day, amount,
       SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenue

ORDER BY がない場合、ウィンドウはすべての行を対象とするため、各行に総合計が表示されます。これを指定すると、ウィンドウはその順序で一度に1行ずつ拡張され、各行からは自分自身とそれより前にあるすべての行だけが見えるようになります。

PARTITION BYを追加して、グループごとに累計をリセットします。たとえば、地域ごとのrevenueを日ごとに累計します。

challenge icon

チャレンジ

簡単

利用可能なテーブルと列:

  • revenueregiondayamount

regiondayamount、および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
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

応用のすべてのレッスン

自分で練習してみよう: SQLプレイグラウンド