단순히 일자별 합계만 보면 “그날의 성과”는 알 수 있지만,
시간의 흐름에 따라 얼마나 누적되고 있는지는 보이지 않습니다.
이럴 때는 윈도우 함수 SUM() OVER() 를 사용하면 한 줄의 쿼리로 누적 합계를 계산할 수 있습니다.
| order_date | sales |
|---|---|
| 2025-01-01 | 100 |
| 2025-01-02 | 200 |
| 2025-01-03 | 150 |
| 2025-01-04 | 300 |
각 날짜별 매출 합계와 함께, 누적 매출액을 계산하기
SELECT
order_date
, sales
, SUM(sales) OVER (ORDER BY order_date) AS cumulative_sales
FROM daily_sales
ORDER BY order_date;
| order_date | sales | cumulative_sales |
|---|---|---|
| 2025-01-01 | 100 | 100 |
| 2025-01-02 | 200 | 300 |
| 2025-01-03 | 150 | 450 |
| 2025-01-04 | 300 | 750 |
✔️ SUM() OVER()는 누적 계산용 핵심 윈도우 함수입니다.
✔️ ORDER BY로 누적 기준을, PARTITION BY로 구분 단위를 지정합니다.