본문 바로가기
하루하루/SQL 문제풀이

[Lv.3 Oracle] 144855 - 카테고리 별 도서 판매량 집계하기

by 키튼햄 2023. 11. 13.

 

문제

 

 

 

풀이

1. 검색을 하는 것이 조건이기 때문에 SELECT문을 사용한다.

2. BOOK 테이블과 BOOK_SALES 테이블은 BOOK_ID 컬럼으로 JOIN 하여 각 도서의 판매정보를 가져온다. 이때 OUTER 조인이 아닌 INNER 조인을 사용한다. 두 테이블 간의 관계가 일치하기 때문에 OUTER JOIN이 아니라 INNER JOIN을 사용했다.

3. 조건이 2022년 1월의 카테고리 별 도서 판매량이므로 날짜를 추출하여 사용할 수 있도로 EXTRACT()함수를 사용하였다.   (참고 :   [Oracle] 날짜정보 추출 함수 / EXTRACT )

4. 카테고리별로 그룹화하기 위해 GROUP BY 로 카테고리 컬럼을 묶었다.

5. 컬럼은 1) CATEGORY와 2) SLAES의 합을 알 수 있도록 SUM()함수를 사용한 SUM(SALES)를 사용하였고 별칭으로 TOTAL_SALES를 주었다.

6. ORDER BY를 이용해 카테고리 컬럼값을 기준으로 오름차순(ASC)으로 정렬했다.

 

 

 

쿼리문

SELECT CATEGORY, SUM(SALES) AS TOTAL_SALES
FROM BOOK
JOIN BOOK_SALES ON BOOK.BOOK_ID = BOOK_SALES.BOOK_ID
WHERE EXTRACT(YEAR FROM SALES_DATE) = 2022 AND EXTRACT(MONTH FROM SALES_DATE) = 1
GROUP BY CATEGORY
ORDER BY CATEGORY ASC;