[프로그래머스] LEVEL4 저자 별 카테고리 별 매출액 집계하기
SELECT BOOK.AUTHOR_ID, AUTHOR_NAME, CATEGORY, SUM(PRICE * SALES) AS TOTAL_SALES
FROM BOOK
LEFT JOIN AUTHOR ON BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID
LEFT JOIN BOOK_SALES ON BOOK.BOOK_ID = BOOK_SALES.BOOK_ID
WHERE SALES_DATE LIKE '2022-01-%'
GROUP BY AUTHOR_ID, CATEGORY
ORDER BY AUTHOR_ID, CATEGORY DESC;
- BOOK, AUTHOR, BOOKS_SALES 3가지 테이블 조인하기
문제에서 요구하는 저자ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES)을 구하려면, 도서 정보 테이블(BOOK), 도서의 저자 정보 테이블(AUTHOR), 도서의 날짜 별 판매량 정보 테이블(BOOKS_SALES) 총 3가지 테이블을 조인해야 합니다.
BOOK 테이블을 기준으로 나머지 두 테이블과의 공통된 속성을 이용하여 JOIN 하는 것이 우선입니다. BOOK 테이블과 AUTHOR 테이블은 공통된 속성이 AUTHOR_ID이므로 이를 이용하여 LEFT JOIN 하고, BOOK 테이블과 BOOK_SALES 테이블은 공통된 속성이 BOOK_ID이므로 이를 이용하여 LEFT JOIN 했습니다.
- 저자별, 카테고리별로 데이터 그룹화하기(GROUP BY)
아래 쿼리를 이용하여 그룹화하기 전 데이터를 확인하면 다음과 같이 나옵니다.