데이터베이스 분석의 꽃입니다. 일반 집계 함수(GROUP BY)는 여러 행을 하나로 뭉개버리지만, 윈도우 함수는 원래의 행(Row) 개수를 그대로 유지하면서, 특정 창문(Window) 범위 내의 집계값이나 순위를 각 행 옆에 나란히 붙여줍니다.
💡 핵심 비유
투명한 슬라이딩 액자 전체 그림(데이터)은 그대로 둔 채, 작은 투명 액자(Window)를 위아래로 움직이면서 "최근 3일간의 누적 합계", "부서 내 나의 급여 순위" 등을 원본 데이터 손실 없이 구하는 기술입니다.
🧩 원리 이해하기
Script-1.sql
1
-- GROUP BY 없이 부서 내(PARTITION BY) 연봉 순위(RANK)를 구합니다.
-- 원본 데이터 행의 개수는 전혀 줄어들지 않습니다!
SELECT NAME,
SALARY,
DEPT_ID,
RANK() OVER(PARTITION BY DEPT_ID ORDER BY SALARY DESC) AS DEPT_RANK
FROM EMPLOYEES;