이 문서는 데이터 웨어하우징 섹션의 일부입니다.
윈도우 함수란?
윈도우 함수(Window Function) 는GROUP BY 없이도 각 행에 대해 관련된 행들의 집합(윈도우) 을 기준으로 계산을 수행하는 함수입니다. 일반 집계 함수와 달리 행의 개수를 줄이지 않고, 각 행에 분석 결과를 추가합니다.
💡 비유: 윈도우 함수는 “나의 성적이 반 전체에서 몇 등인지” 알려주는 것과 같습니다. 반 전체 성적표가 유지되면서, 각 학생 옆에 순위가 추가됩니다.
OVER 절 기본 구문
순위 함수
ROW_NUMBER, RANK, DENSE_RANK, NTILE
순위 함수 비교
실전 예제: 부서별 급여 순위
집계 윈도우 함수
SUM, AVG, COUNT, MIN, MAX를 윈도우 함수로 사용하면 행을 줄이지 않고 집계 결과를 추가합니다.
누적 합계와 이동 평균
오프셋 함수: LAG, LEAD, FIRST_VALUE, LAST_VALUE
LAG / LEAD (전후 행 참조)
FIRST_VALUE / LAST_VALUE
⚠️ LAST_VALUE 주의사항: 프레임을 명시하지 않으면 기본 프레임(ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)이 적용되어, 현재 행까지만 보입니다. 전체 파티션의 마지막 값을 얻으려면ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING을 명시해야 합니다.