본문 바로가기
Programmers(SQL 고득점 Kit)/LEVEL 4

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

by DADA익선 2024. 12. 11.

https://school.programmers.co.kr/learn/courses/30/lessons/144856

저자 별 카테고리 별 매출액 집계하기 LEVEL 4 

2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요.

 

문제 풀이 SQL CODE

1. subquery 1 : 2022년 1월 도서 판매량 테이블 구하기

2. JOIN을 통해 subquery 1 테이블과 BOOK 테이블과 BOOK_SALES테이블 합치기

3. GROUP BY : author_name(저자), category(카테고리) 별 매출액 구하기

4. ORDER BY : author_id 오름차순, category 내림차순 정렬

SELECT author_id, author_name, category, SUM(total_sales)
FROM 
	(SELECT 
	A.book_id,
	A.sales*B.price AS total_sales,
	B.category,
	C.author_id,
	C.author_name
	FROM
		# 2022년 1월 도서 판매량 구하기
		(SELECT book_id, sum(sales) AS sales,sales_date
		FROM BOOK_SALES
		WHERE DATE_FORMAT(SALES_DATE, '%Y-%m') = '2022-01'
		GROUP BY book_id) A
	# 데이터 합치기
	LEFT JOIN BOOK B ON A.book_id = B.book_id
	LEFT JOIN AUTHOR C ON B.author_id = C.author_id) F
GROUP BY author_name, category
ORDER BY author_id, category DESC;

다른 문제 보러가기


2024.12.10 - [Programmers(SQL 고득점 Kit)] - [MySQL] 프로그래머스 - 특정 세대의 대장균 찾기 LEVEL 4

2024.12.06 - [Programmers(SQL 고득점 Kit)] - [MySQL] 프로그래머스 - 오프라인/온라인 판매 데이터 통합하기 LEVEL 4

2024.12.05 - [Programmers(SQL 고득점 Kit)] - [MySQL] 프로그래머스 - 서울에 위치한 식당 목록 출력하기 LEVEL 4