PARTITION BY

출력은 4행 그대로, 평균 계산만 부서별 윈도우로 나뉩니다

AVG(salary) OVER (PARTITION BY department)는 같은 부서의 행끼리만 평균을 구합니다. 그래서 각 행은 자기 부서 평균과 비교된 결과를 함께 받습니다.

PARTITION BY department 전체 테이블을 부서별 계산 구역으로 분리
윈도우
같이 평균을 구하는 행
각 행이 받는 결과
같은 평균 공유 개발 부서

같은 department 값끼리 한 윈도우

김철수 5000
이영희 4000
dept_avg 4500

개발 부서 두 행이 같은 평균 4500을 공유

김철수 5000 - 4500 = +500
이영희 4000 - 4500 = -500

행은 그대로 남고, diff만 각자 계산됩니다.

같은 평균 공유 기획 부서

다른 부서와 계산 기준을 섞지 않음

박민수 3500
최지은 3500
dept_avg 3500

기획 부서는 개발과 별도로 평균을 다시 계산

박민수 3500 - 3500 = 0
최지은 3500 - 3500 = 0

부서가 다르면 공유하는 평균도 달라집니다.

핵심 해석

PARTITION BY는 결과 행 수를 줄이는 것이 아니라, 윈도우 함수를 계산할 범위를 나눕니다. 그래서 같은 SELECT 안에서 개별 행과 부서 평균을 동시에 볼 수 있습니다.