문제
풀이
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;
'하루하루 > SQL 문제풀이' 카테고리의 다른 글
[프로그래머스/Oracle] 59045. 보호소에서 중성화한 동물 (0) | 2023.12.17 |
---|---|
[프로그래머스/Oracle] 131113. 조건별로 분류하여 주문상태 출력하기 (0) | 2023.12.15 |
[프로그래머스/Oracle] 59047. 이름에 el이 들어가는 동물 찾기 / 대소문자 구분하지 않는 조건일때 / UPPER, LOWER 사용 (0) | 2023.10.15 |
[프로그래머스/Oracle] 151138. 자동차 대여 기록에서 장기/단기 대여 구분하기 (1) | 2023.10.13 |