코드 11-10은 box_office 테이블에서 2018년 이후 개봉된 영화 중에서 매출 10위 안에 든 영화들의 총 매출액과 평균 매출액을 연도별로 구하는 쿼리입니다. 2018년과 2019년에 개봉한 영화 중에서 1~10위의 영화는 총 19편(years 칼럼 값 기준으로 2018년 5위 영화의 개봉일, 즉 release_date가 2017년 12월 20일이어서 총 20편이 아닌 19편이 조회됐습니다)이 있습니다. 이를 연도별로 집계하므로 결과 집합은 연도별로 1건씩 조회됩니다.
이 결과를 1~10위 영화의 개별 순위, 매출액과 같이 볼 수 있다면 더 좋지 않을까요? 즉, 10위까지 영화 정보도 보고 추가로 연도별 개봉 영화의 총 매출액과 평균 매출액을 볼 수 있다면 좀 더 의미 있을 것 같습니다. 쿼리를 한번 작성해 보죠.
코드 11-11
WITH summary AS
(SELECT YEAR(release_date) years,
SUM(sale_amt) sum_amt, AVG(sale_amt) avg_amt
FROM box_office
WHERE YEAR(release_date) >= 2018
AND ranks <= 10
GROUP BY 1
)
SELECT b.years, a.ranks, a.movie_name, a.sale_amt, b.sum_amt, b.avg_amt
FROM box_office a
INNER JOIN summary b
ON YEAR(a.release_date) = b.years
WHERE a.ranks <= 10
ORDER BY 1, 2;