Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

yonny

[SQL] 카테고리 별 도서 판매량 집계하기 (프로그래머스/LEVEL3) 본문

SQL/Programmers

[SQL] 카테고리 별 도서 판매량 집계하기 (프로그래머스/LEVEL3)

yonny00 2023. 7. 26. 14:35

문제 : 카테고리 별 도서 판매량 집계하기 (Lv. 3)

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 설명

 

다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK), 저자 정보(AUTHOR) 테이블입니다.

BOOK 테이블은 각 도서의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다.

BOOK_SALES 테이블은 각 도서의 날짜 별 판매량 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다.

[ 문제 ]

 

2022년 1월의 카테고리 별 도서 판매량을 합산하고,

카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 카테고리명을 기준으로 오름차순 정렬해주세요.

 

[ 예시 ]

 

예를 들어 BOOK 테이블과 BOOK_SALES 테이블이 다음과 같다면

2022년 1월의 도서 별 총 판매량은 도서 ID 가 1 인 도서가 총 3권, 도서 ID 가 2 인 도서가 총 14권 이고,

도서 ID 가 3 인 도서가 총 2권 입니다.

카테고리 별로 판매량을 집계한 결과는 다음과 같습니다.

 

 

[ 출력 결과 ]

2. 문제 풀이

SELECT A.CATEGORY, SUM(B.SALES) AS TOTAL_SALES
    FROM BOOK A
    INNER JOIN BOOK_SALES B 
    ON A.BOOK_ID = B.BOOK_ID
    WHERE DATE_FORMAT(B.SALES_DATE,'%Y%m') = 202201
    GROUP BY A.CATEGORY
    ORDER BY A.CATEGORY

 

 [ 문제 요구사항 ]

 

문제를 보면 이 문제를 풀기 위해서는 크게 네 가지 작업이 필요!

 

1. BOOK 테이블과 BOOK SALES 테이블 JOIN 하기 (이때, 키는 BOOK_ID)

2. DATE_FORMAT 함수를 사용하여 BOOK SALES 테이블에서 SALE DATE가 2022년 1월인 데이터 필터링

3. GROUP BY에서 CATEGORY별로 총 판매량 구하기

4. 카테고리 순으로 정렬