윈도우 집계 비교

ORDER BY가 생기면 기본 프레임이 현재 행까지 닫힙니다

둘 다 PARTITION BY department로 같은 부서를 묶지만, 정렬이 없으면 부서 전체 합계, 정렬이 있으면 현재 행까지의 누적 합계를 보게 됩니다.

공통 전제 같은 department 안에서 계산
비교 축
ORDER BY 없음 전체 파티션을 한 번에 집계
ORDER BY salary 정렬된 흐름에서 현재 행까지 집계
집계 범위
부서 전체 행을 모두 포함
처음 행부터 현재 행까지 포함
예시 SQL
SUM(salary) OVER (
  PARTITION BY department
)
SUM(salary) OVER (
  PARTITION BY department
  ORDER BY salary
)
같은 부서 예시
이영희 40009000
김철수 50009000
이영희 40004000
김철수 50009000
읽는 결과
현재 행 위치와 무관하게 결과가 항상 같은 이유는 기본 프레임이 부서 전체이기 때문입니다.
앞선 행이 차곡차곡 포함되므로 현재 행마다 결과가 달라지고 running total이 됩니다.
핵심: ORDER BY를 넣는 순간 기본 프레임은 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW가 되어, 기본 동작이 전체 합계에서 누적 계산으로 바뀝니다.