공통 전제
같은 창을 먼저 정한다

OVER (...) 가 비교 범위를 정합니다.

윈도우 함수는 행을 줄이지 않고, 현재 행 옆에 계산 결과를 덧붙입니다.

분류 기준은 함수 이름이 아니라 무슨 결과를 붙이는지입니다. 순번을 붙이는지, 요약값을 붙이는지, 다른 행 값을 끌어오는지로 읽으면 빠릅니다.

출력 모양 원본 행 수 유지

집계처럼 줄어들지 않고 각 행에 새 컬럼이 생깁니다.

각 행에 무엇을 붙이느냐에 따라 세 갈래로 나뉨
1. 순위 함수 순번이나 등수 정렬 결과를 따라 각 행의 위치를 표시
행에 붙는 결과
1등, 2등, 2등, 4등

동점 처리 방식이 함수마다 다릅니다.

ROW_NUMBER() RANK() DENSE_RANK()
다음 절의 초점: 같은 값이 있을 때 순위가 어떻게 달라지는가
2. 집계 함수 합계·평균·개수 창 전체를 요약한 값을 현재 행 옆에 부착
행에 붙는 결과
부서 평균 83, 전체 합계 540

그룹으로 줄이지 않고 요약값을 함께 봅니다.

SUM() AVG() COUNT()
핵심 차이: 일반 집계처럼 행을 합치지 않고 원본 행을 그대로 둡니다.
3. 값 참조 함수 이전·다음 행의 값 행끼리 비교해 변화와 흐름을 읽음
행에 붙는 결과
이전 점수 90, 다음 점수 76

현재 행을 기준으로 다른 위치의 값을 가져옵니다.

LAG() LEAD() FIRST_VALUE()
언제 유용한가: 전 행 대비 증감, 시작값 대비 차이, 흐름 비교가 필요할 때