AVG(salary) OVER (PARTITION BY department)는 같은 부서의 행끼리만 평균을 구합니다. 그래서 각 행은 자기 부서 평균과 비교된 결과를 함께 받습니다.
PARTITION BY department
전체 테이블을 부서별 계산 구역으로 분리
같은 department 값끼리 한 윈도우
개발 부서 두 행이 같은 평균 4500을 공유
5000 - 4500 = +500
4000 - 4500 = -500
행은 그대로 남고, diff만 각자 계산됩니다.
다른 부서와 계산 기준을 섞지 않음
기획 부서는 개발과 별도로 평균을 다시 계산
3500 - 3500 = 0
3500 - 3500 = 0
부서가 다르면 공유하는 평균도 달라집니다.
PARTITION BY는 결과 행 수를 줄이는 것이 아니라, 윈도우 함수를 계산할 범위를 나눕니다. 그래서 같은 SELECT 안에서 개별 행과 부서 평균을 동시에 볼 수 있습니다.