결과는 만족스럽지만, 쿼리가 좀 복잡하죠. 이럴 때 다음과 같이 윈도우 함수를 사용하면 동일한 결과를 얻으면서 훨씬 간단하게 쿼리를 작성할 수 있습니다.
코드 11-12
SELECT YEAR(release_date) years, ranks, movie_name, sale_amt,
SUM(sale_amt) OVER (PARTITION BY YEAR(release_date)) sum_amt,
AVG(sale_amt) OVER (PARTITION BY YEAR(release_date)) avg_amt
FROM box_office
WHERE YEAR(release_date) >= 2018
AND ranks <= 10
ORDER BY 1, 2;
실행결과