on my way

[프로그래머스 코딩테스트 연습 SQL - 11] 카테고리 별 도서 판매량 집계하기 (MySQL) 본문

algorithm/SQL

[프로그래머스 코딩테스트 연습 SQL - 11] 카테고리 별 도서 판매량 집계하기 (MySQL)

wingbeat 2024. 7. 16. 19:57

 

 

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

 

1월이 있는걸 못 읽음

 

문제 풀이

  • GROUP BY B.CATEGORY는 동일한 CATEGORY 값을 가진 행들을 하나의 그룹으로 묶습니다.
  • SUM(S.SALES)는 각 그룹의 SALES 값을 모두 합산합니다. 이때 SALES는 BOOK_SALES 테이블에서 가져온 값입니다.
  • 따라서, SUM(S.SALES)는 각 카테고리별 총 판매량을 계산합니다.

예시

  1. 조인된 데이터 (WHERE 조건 적용 후):
BOOK_ID | CATEGORY | SALES
1       | 인문     | 2
2       | 경제     | 3
1       | 인문     | 1
2       | 경제     | 5
2       | 경제     | 6
3       | 경제     | 2
BOOK_ID | CATEGORY | SALES
1       | 인문     | 2
2       | 경제     | 3
1       | 인문     | 1
2       | 경제     | 5
2       | 경제     | 6
3       | 경제     | 2

 

2. GROUP BY CATEGORY:

 

  • 인문 그룹:
    • SALES: 2 + 1 = 3
  • 경제 그룹:
    • SALES: 3 + 5 + 6 + 2 = 16

3. 최종 결과: