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
'Programmers(SQL 고득점 Kit) > LEVEL 4' 카테고리의 다른 글
[MySQL] 프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수 구하기 LEVEL 4 (0) | 2024.12.18 |
---|---|
[MySQL] 프로그래머스 - 식품분류별 가장 비싼 식품의 정보 조회하기 LEVEL 4 (0) | 2024.12.11 |
[MySQL] 프로그래머스 - 특정 세대의 대장균 찾기 LEVEL 4 (0) | 2024.12.10 |
[MySQL] 프로그래머스 - 오프라인/온라인 판매 데이터 통합하기 LEVEL 4 (3) | 2024.12.06 |
[MySQL] 프로그래머스 - 서울에 위치한 식당 목록 출력하기 LEVEL 4 (0) | 2024.12.05 |