누계
Coddy SQL 여정의 심화 과정 섹션에 포함된 레슨 — 27개 중 25번째.
누적 합계(running total)는 ORDER BY가 포함된 윈도우에서의 SUM입니다. 이는 집계 함수를 행별로 늘어나는 형태로 변환합니다.
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueORDER BY가 없으면 윈도우는 모든 행을 포함하므로 모든 행에서 전체 합계를 얻게 됩니다. 사용하면 윈도우가 해당 순서대로 한 번에 한 행씩 확장되므로, 각 행은 자기 자신과 그 이전의 모든 행만 보게 됩니다.
그룹별로 누계를 재설정하려면 PARTITION BY를 추가하세요. 예: 지역별 일일 매출 누계.
챌린지
쉬움사용 가능한 테이블과 컬럼:
<strong>revenue</strong>:<strong>region</strong>,<strong>day</strong>,<strong>amount</strong>
region, day, amount, 그리고 region_running_total을 반환하세요. region_running_total은 해당 날짜까지의 해당 지역(region)에 대한 누적 amount입니다. 누계(running total)는 각 지역별로 새로 시작되어야 합니다.
윈도우 함수에서 PARTITION BY를 사용하세요. region으로 정렬한 다음 day로 정렬하세요.
치트 시트
누적 합계(running total)는 윈도우 내에서 SUM을 ORDER BY와 함께 사용합니다. 윈도우는 해당 순서에 따라 행별로 확장됩니다:
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
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.