이 구문에서 가장 중요한 부분은 로우의 그룹인 윈도우를 지정하는 PARTITION BY 절입니다. 그룹을 지정할 때 집계 쿼리에서 GROUP BY 절을 사용했죠. GROUP BY 절을 사용하면 쿼리 결과 집합의 로우가 묶어져 로우 수가 줄어듭니다. 하지만 PARTITION BY 절은 집계 함수나 윈도우 함수가 계산할 대상이 되는 로우의 그룹을 지정할 뿐, 최종 결과 집합의 로우 수를 줄이지 않습니다. 이렇게 PARTITION BY 절로 지정된 그룹을 파티션이라고 합니다.
파티션 때문에 코드 11-12의 SELECT 절에서 sale_amt와 SUM(sale_amt)를 같이 사용해 개별 영화의 매출액과 연도별 총 매출액을 함께 볼 수 있습니다. 즉, 윈도우 함수를 사용하면 로우 수를 줄이지 않으면서도 집계 값을 계산할 수 있죠. 따라서 코드 11-12의 SUM(sale_amt) OVER (PARTITION BY YEAR(release_date))는 YEAR(release_date)가 반환하는 연도별로 파티션을 지정해 파티션별로 매출액을 모두 더한다는 뜻입니다. 따라서 sum_amt 값으로 2018년과 2019년의 총 매출액이 반환됩니다.