[MySQL] 카테고리 별 도서 판매량 집계하기 - GROUP BY

Saemi Min·2023년 2월 18일
0

MySQL

목록 보기
11/21
post-thumbnail

문제

해당 문제 링크

정답

SELECT CATEGORY, SUM(SALES) TOTAL_SALES FROM BOOK
JOIN BOOK_SALES ON BOOK.BOOK_ID = BOOK_SALES.BOOK_ID
WHERE SALES_DATE LIKE "2022-01%"
GROUP BY CATEGORY 
ORDER BY CATEGORY ASC

문법

JOIN ~ ON ~

결합연산 (JOIN)
: 테이블을 가로 방향으로 붙이는 연산
1. LEFT OUTER JOIN: 왼쪽 테이블을 기준으로 합쳐짐 (왼쪽 테이블에 존재하는 row만 보여짐)
2. RIGHT OUTER JOIN: 오른쪽 테이블을 기준으로 합쳐짐 (오른쪽 테이블에 존재하는 row만 보여짐)
3. INNER JOIN: 왼쪽, 오른쪽 테이블 모두에 존재하는 row만 추려서 합쳐짐 (교집합 개념)
MySQL에서는 JOIN, INNER JOIN, CROSS JOIN이 모두 같은 의미로 사용

풀이

문제를 봐보자

2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요.

  • 2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY)
    => 카테고리 정보가 들어있는 BOOK 테이블과 판매일, 판매량이 들어있는 BOOK_SALES테이블을 JOIN을 통해 합쳐야 한다. BOOK_ID가 공통적으로 들어가있으므로 이를 통해 합친다.
    => 각 카테고리 별 도서 판매량을 합산해야하기 떄문에 CATEGORY로 그룹화 한다. 그리고, 합산량을 알기 위해 SUM()함수를 사용한다.
    2022년 1월의 카테고리만 알기 때문에 조건절 WHERE()와 LIKE 함수를 써서 제한한다.
  • 결과는 카테고리명을 기준으로 오름차순 정렬해주세요.
    => 정렬은 ORDER BY 를 사용한다.
profile
I believe in myself.

0개의 댓글