-
[프로그래머스] 저자 별 카테고리 별 매출액 집계하기 - MySQLDataBase/MySQL 2023. 2. 13. 02:38
문제 설명
BOOK, BOOK_SALES, AUTHOR 테이블의 데이터를 이용해 저자, ID, 저자명, 카테고리, 저자 별 카테고리 별 매출액을 구하고, 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해 출력하는 문제
https://school.programmers.co.kr/learn/courses/30/lessons/144856
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 알고리즘 분류 - GROUP BY
- 난이도 - Level 4
접근 방법
판매량, 작가 정보, 카테고리 모두 책의 ID와 관련이 있으므로, 책을 ID별로 다루기 편하도록 BOOK과 BOOK_SALES 테이블을 조인해 하나로 합쳤고, 그 과정에서 2022년도 1월 판매된 책 데이터만 남기도록 했다.
이 과정만 좀 복잡했고, 그 후는 단순하게 문제 조건대로 저자 별, 카테고리 별 매출액을 집계하기 위해 GROUP BY 조건으로 저자 ID, 책 카테고리를 사용했다.
답안 코드
SELECT AUTHOR.AUTHOR_ID, AUTHOR.AUTHOR_NAME, B.CATEGORY, SUM(B.SALES * B.PRICE) AS TOTAL_SALES FROM (SELECT BOOK_SALES.BOOK_ID, BOOK_SALES.SALES_DATE, BOOK_SALES.SALES, BOOK.CATEGORY, BOOK.AUTHOR_ID, BOOK.PRICE FROM BOOK, BOOK_SALES WHERE BOOK.BOOK_ID = BOOK_SALES.BOOK_ID AND YEAR(BOOK_SALES.SALES_DATE) = '2022' AND MONTH(BOOK_SALES.SALES_DATE) = '1' ORDER BY BOOK.BOOK_ID) B, AUTHOR WHERE AUTHOR.AUTHOR_ID = B.AUTHOR_ID GROUP BY AUTHOR.AUTHOR_ID, BOOK.CATEGORY ORDER BY AUTHOR.AUTHOR_ID, B.CATEGORY DESC
GROUP BY에 조건을 두 개 이상 사용해본 건 처음이당
'DataBase > MySQL' 카테고리의 다른 글
[MySQL] 특정 문자열 포함 여부, 횟수 찾기 - LIKE(), INSTR() (0) 2023.02.18 [프로그래머스] 평균 일일 대여 요금 구하기 - MySQL (0) 2023.02.18 [프로그래머스] 카테고리 별 도서 판매량 집계하기 - MySQL (0) 2023.02.13 [프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기 - MySQL (0) 2023.02.12 [프로그래머스] 조건에 맞는 도서 리스트 출력하기 - MySQL (0) 2023.02.12