[Programmers-SQL] 카테고리 별 도서 판매량 집계하기

ouneno·2023년 3월 7일
0

Programmers-SQL

목록 보기
17/26
post-thumbnail

2023-03-07 화요일

💡카테고리 별 도서 판매량 집계하기


💡 문제 해석

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


💡 요약

  1. SELECT CATEGORY, TOTAL_SALES(도서 판매량 합산) 리스트 출력
  2. WHERE 2022년 1월
  3. GROUP BY CATEGORY 카테고리 별
  4. ORDER BY CATEGORY ASC

1. BOOK 테이블 전체 출력하기

SELECT
*
  FROM BOOK

💻 출력

💡 컬럼 설명

  • BOOK_ID - INTEGER - 도서 ID
  • CATEGORY - VARCHAR(N) - 카테고리 (경제, 인문, 소설, 생활, 기술)
  • AUTHOR_ID - INTEGER - 저자 ID
  • PRICE - INTEGER - 판매가(원)
  • PUBLISHED_DATE - DATE - 출판일

2. BOOK_SALES 테이블 전체 출력하기

SELECT
*
  FROM BOOK_SALES

💻 출력


💡 컬럼 설명

  • BOOK_ID - INTEGER - 도서 ID
  • SALES_DATE - DATE - 판매일
  • SALES - INTEGER - 판매량

3. 카테고리별 도서 판매량 합산 출력하기

SELECT bk.category
        , sum(bs.sales) AS TOTAL_SALES
FROM BOOK bk 
    LEFT JOIN BOOK_SALES bs ON bk.book_id = bs.book_id
GROUP BY bk.category

💻 출력

💡 설명

  1. BOOK 테이블과 BOOK_SALES 테이블의 book_id 컬럼을 사용해 LEFT JOIN
FROM BOOK bk 
    LEFT JOIN BOOK_SALES bs ON bk.book_id = bs.book_id
  1. 판매량을 구하기 위해 SUM()함수를 사용하고 'TOTAL_SALES'라는 명칭을 붙혀줌
sum(bs.sales) AS TOTAL_SALES
  1. category 별로 묶기 위해 GROUP BY를 사용함
SELECT bk.category
...(생략)
GROUP BY bk.category

4-1. [택] DATE_FORMAT을 사용하여 '2022-01'월 조건만 출력하기

SELECT bk.category
        , sum(bs.sales) AS TOTAL_SALES
FROM BOOK bk 
    LEFT JOIN BOOK_SALES bs ON bk.book_id = bs.book_id
WHERE DATE_FORMAT(sales_date, '%Y-%m') = '2022-01'
GROUP BY bk.category

4-2. MONTH()를 사용하여 1월 조건만 출력하기

SELECT bk.category
        , sum(bs.sales) AS TOTAL_SALES
FROM BOOK bk 
    LEFT JOIN BOOK_SALES bs ON bk.book_id = bs.book_id
WHERE MONTH(sales_date) = '1'
GROUP BY bk.category

💻 출력


5. 카테고리명 기준으로 오름차순 정렬하기

SELECT bk.category
        , sum(bs.sales) AS TOTAL_SALES
FROM BOOK bk 
    LEFT JOIN BOOK_SALES bs ON bk.book_id = bs.book_id
WHERE DATE_FORMAT(sales_date, '%Y-%m') = '2022-01'
GROUP BY bk.category
ORDER BY bk.category

💻 출력


profile
지속적인 성장을 추구하는 새싹 개발자입니다🌱

0개의 댓글