PARTITION BY 창을 나눈다
부서별, 카테고리별처럼 계산 범위를 먼저 정하면 같은 그룹 안에서만 비교와 집계가 이뤄집니다.
예: 부서별 급여 순위, 부서별 평균 급여
부서별, 카테고리별처럼 계산 범위를 먼저 정하면 같은 그룹 안에서만 비교와 집계가 이뤄집니다.
예: 부서별 급여 순위, 부서별 평균 급여
OVER 절이 창의 규칙을 정합니다. 범위를 나눈 뒤 순서를 주면, 각 행은 자기 위치에 맞는 결과를 함께 받습니다.
같은 창 안에서도 정렬을 주면 각 행의 순서가 생겨 순위와 누적 합계의 의미가 결정됩니다.
ORDER BY가 없으면 전체 통계, 있으면 현재 행까지의 흐름을 계산하기 쉽습니다.
창을 어떻게 나누고 정렬했는지에 따라, 각 행에 붙는 값의 성격이 달라집니다.
항상 고유 번호: 1, 2, 3, 4
동점 처리 방식만 다르고 둘 다 순위를 만든다
그룹 평균 또는 누적 합계를 각 행에 붙인다
정렬된 행을 N개 구간으로 나눈다
순위를 만든 뒤 바깥에서 잘라야 합니다. 윈도우 함수 결과는 서브쿼리나 CTE에서 한 번 받아서 필터링합니다.
집계 윈도우에 ORDER BY를 넣으면 전체 통계가 아니라 누적 계산으로 바뀌고, 동점 순위는 정렬 기준을 끝까지 적어야 안정적입니다.