연도별로 개봉한 영화 편수를 구하므로 OO별에 해당하는 항목이 개봉연도가 되죠. 따라서 개봉연도를 GROUP BY와 SELECT 절에 명시하면 됩니다. 개봉연도는 개봉일에 나와 있으므로 release_date 칼럼을 YEAR() 함수의 매개변수로 넘겨 구합니다. 다음으로 영화 편수를 구해야 하는데, box_office 테이블의 1개 로우가 한 편의 영화죠. 따라서 테이블에 총 몇 개의 로우가 있는지 집계하면 영화 편수를 구할 수 있습니다. 이때는 COUNT() 함수를 사용합니다. 그리고 개봉연도별로 내림차순 정렬해 최신 연도부터 조회합니다.
코드 7-13에서는 GROUP BY 절과 COUNT() 함수를 결합한 집계 쿼리를 작성해 원하는 데이터를 얻었습니다. 그럼 몇 가지 예시를 더 살펴볼까요?
2019년 개봉 영화의 유형별 최대, 최소 매출액과 전체 매출액 집계하기
영화 유형은 box_office 테이블의 movie_type 칼럼에 있고, 값으로 장편, 단편, 옴니버스가 있습니다. 그리고 매출액은 sale_amt 칼럼을 참조하면 됩니다. 영화 유형별 최대, 최소, 전체 매출액을 구하는 집계 쿼리를 작성해 봅시다.
코드 7-14
SELECT movie_type, MAX(sale_amt), MIN(sale_amt), SUM(sale_amt)
FROM box_office
WHERE YEAR(release_date) = 2019
GROUP BY movie_type
ORDER BY 1;
실행결과