[SQL] SUM() OVER()로 누적 합계 한 번에 계산하기

Unit·2025년 11월 4일

SQL

목록 보기
46/59

단순히 일자별 합계만 보면 “그날의 성과”는 알 수 있지만,
시간의 흐름에 따라 얼마나 누적되고 있는지는 보이지 않습니다.
이럴 때는 윈도우 함수 SUM() OVER() 를 사용하면 한 줄의 쿼리로 누적 합계를 계산할 수 있습니다.


📄 예시 데이터

order_datesales
2025-01-01100
2025-01-02200
2025-01-03150
2025-01-04300

🎯 목표

각 날짜별 매출 합계와 함께, 누적 매출액을 계산하기


🖥️ SQL 예시 (PostgreSQL 기준)

SELECT
      order_date
    , sales
    , SUM(sales) OVER (ORDER BY order_date) AS cumulative_sales
FROM daily_sales
ORDER BY order_date;

👁️ 결과

order_datesalescumulative_sales
2025-01-01100100
2025-01-02200300
2025-01-03150450
2025-01-04300750

정리

✔️ SUM() OVER()는 누적 계산용 핵심 윈도우 함수입니다.
✔️ ORDER BY로 누적 기준을, PARTITION BY로 구분 단위를 지정합니다.

profile
협업, 유지보수, 최적화를 고려한 데이터 실무 팁을 정리합니다.

0개의 댓글