[SQL] 연습

[MySQL] 프로그래머스 저자 별 카테고리 별 매출액 집계하기

Simon Yoon 2024. 12. 29. 21:17

문제:

2022년 1월의 도서 판매 데이터를 기준으로
저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가), 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력
- 결과는 저자 ID를 오름차순, 카테고리를 내림차순 정렬

 

해결방법:

1. 도서 판매 테이블에서 판매일에 대한 기준을 WHERE 절에서 설정

2. 책 ID를 기준으로 한 INNER JOIN과 저자 ID 를 기준으로 한 INNER JOIN이 필요

3. GROUP BY 로 저자 별, 카테고리 별 매출액을 계산

 

예시 코드:

SELECT A.AUTHOR_ID, AUTHOR_NAME, CATEGORY, SUM(TOTAL_SALES) TOTAL_SALES
FROM AUTHOR A
INNER JOIN
(SELECT B.BOOK_ID, CATEGORY, AUTHOR_ID, (PRICE * SALES) TOTAL_SALES
FROM BOOK B
INNER JOIN
(SELECT BOOK_ID, SALES
FROM BOOK_SALES
WHERE SALES_DATE BETWEEN "2022-01-01" AND "2022-01-31") BS
ON B.BOOK_ID = BS.BOOK_ID) BBS
ON A.AUTHOR_ID = BBS.AUTHOR_ID
GROUP BY AUTHOR_ID, AUTHOR_NAME, CATEGORY
ORDER BY AUTHOR_ID ASC, CATEGORY DESC
;