Menu
Coddy logo textTech

累計

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

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

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

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

PARTITION BY を追加して、グループごとに累計をリセットします(例:地域ごとの日次収益の累計など)。

challenge icon

チャレンジ

簡単

利用可能なテーブルとカラム:

  • <strong>revenue</strong>: <strong>region</strong>, <strong>day</strong>, <strong>amount</strong>

regiondayamount、および region_running_total を取得してください。region_running_total は、その日までの**そのリージョン**の累積 amount です。累計はリージョンごとにリセットされる必要があります。

ウィンドウで PARTITION BY を使用してください。region、次に day の順で並べ替えてください。

チートシート

累計(累積合計)は、ウィンドウ内で SUMORDER BY を使用します。ウィンドウはその順序で1行ずつ拡張されます:

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

グループごとに累計をリセットするには、PARTITION BY を追加します:

SELECT region, day, amount,
       SUM(amount) OVER (PARTITION BY region ORDER BY day) AS region_running_total
FROM revenue
ORDER BY region, day

自分で試してみよう

SELECT region, day, amount,
       -- SUM(amount) OVER (PARTITION BY region ORDER BY day)
FROM revenue
ORDER BY region, day
quiz icon腕試し

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

応用のすべてのレッスン