728x90
코드 힌트
1. JOIN을 사용한 데이터 결합
- 두 테이블을 JOIN하여 관련 데이터를 결합합니다.
- PRODUCT_ID를 기준으로 FOOD_PRODUCT 테이블과 FOOD_ORDER 테이블을 연결하여 필요한 정보를 가져옵니다.
2. 날짜 형식 변환 및 필터링
- TO_CHAR를 사용하여 날짜 필드를 특정 형식으로 변환할 수 있습니다.
- PRODUCE_DATE를 'YYYY-MM' 형식으로 변환하여 2022년 5월에 해당하는 데이터를 필터링합니다.
3. 판매 총액 계산
- SUM 함수로 각 제품의 총 판매 금액을 계산합니다.
- O.AMOUNT * P.PRICE를 사용하여 판매된 양과 가격을 곱하여 총 금액을 구하고 이를 합산합니다.
4. 결과 정렬
- ORDER BY 절로 결과를 정렬합니다.
- TOTAL_SALES 기준으로 내림차순으로 정렬하며, 동일한 금액일 경우 PRODUCT_ID로 추가 정렬합니다.
정답은 더보기 클릭
더보기
SELECT P.PRODUCT_ID, P.PRODUCT_NAME, SUM(O.AMOUNT * P.PRICE) AS TOTAL_SALES
-- 각 제품의 ID, 이름, 총 판매 금액을 조회
FROM FOOD_PRODUCT P
JOIN FOOD_ORDER O
-- FOOD_PRODUCT 테이블과 FOOD_ORDER 테이블을 제품 ID를 기준으로 조인
ON P.PRODUCT_ID = O.PRODUCT_ID
-- 조인 조건: 제품 ID가 같은 행끼리 연결
WHERE TO_CHAR(O.PRODUCE_DATE, 'YYYY-MM') = '2022-05'
-- 주문 날짜가 2022년 5월인 데이터만 조회
GROUP BY P.PRODUCT_ID, P.PRODUCT_NAME
-- 제품 ID와 이름으로 그룹화하여 각 제품의 총 판매 금액을 계산
ORDER BY TOTAL_SALES DESC, P.PRODUCT_ID
-- 총 판매 금액을 기준으로 내림차순 정렬, 금액이 같을 경우 제품 ID로 정렬
728x90
'프로그래머스(Oracle)' 카테고리의 다른 글
[프로그래머스 (Oracle)] 취소되지 않은 진료 예약 조회하기 (2) | 2024.10.05 |
---|---|
[프로그래머스 (Oracle)] 서울에 위치한 식당 목록 출력하기 (2) | 2024.10.03 |
[프로그래머스 (Oracle)] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (1) | 2024.10.02 |
[프로그래머스 (Oracle)] 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.10.02 |
[프로그래머스 (Oracle)] 조건에 맞는 사용자와 총 거래금액 조회하기 (1) | 2024.10.02 |