코드 9-14는 box_office 테이블에서 2015년 이후 연도별 순위가 1~3위인 영화와 해당 영화의 매출액이 해당 연도 전체 매출액에서 차지하는 비율을 구하는 쿼리입니다. 결과를 보면 2015년 1위 영화인 <베테랑>의 매출액은 2015년 전체 매출액에서 6.34%를 차지합니다.
연도별 1~3위 영화의 순위, 제목, 매출액은 쉽게 구할 수 있습니다. 그런데 해당 영화 매출액의 비율을 계산하려면 연도별 전체 매출액을 구하고 각 영화의 매출액을 이 금액으로 나누어야 합니다. 따라서 두 단계를 걸쳐야 값을 구할 수 있습니다. 1단계는 연도별 전체 매출액을 구하는 부분이고, 2단계는 연도별 1~3위 영화의 정보와 매출액을 구해 각 영화의 매출액을 전체 매출액으로 나누는 부분이죠.
먼저 연도별 전체 매출액을 구하는 부분을 쿼리로 작성하고 이를 파생 테이블로 만듭니다. 그리고 메인쿼리의 FROM 절에서 다시 box_office 테이블과 연도로 내부 조인하도록 조건으로 넣습니다. 메인쿼리의 SELECT 절에서는 각 영화의 매출액(a.sale_amt)을 연도별 전체 매출액(b.total_amt)으로 나누어 비율을 구합니다. 비율은 소수점 이하 두 자리까지 보이도록 나눈 값에 100을 곱한 후 ROUND() 함수로 반올림합니다.
이처럼 특정 쿼리의 결과 집합을 대상으로 다시 조회할 때는 파생 테이블을 사용합니다.