문제
FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요.
풀이
Level2와 4는 차이가 꽤 큰 거 같다.. 들어가는 조건도 까다로워지고 컬럼을 조회할 때도 여러가지 고려해야하는 상황이 생긴다.
그리고 GROUP BY 처리도 해줘야 하고..!
1. 테이블 조인 및 조회해야하는 컬럼 명시
SELECT B.PRODUCT_ID, A.PRODUCT_NAME, SUM(A.PRICE * B.AMOUNT) AS TOTAL_SALES
FROM FOOD_PRODUCT A, FOOD_ORDER B
WHERE A.PRODUCT_ID = B.PRODUCT_ID;
-- 이 문제에서 고려해야하는점은 과연 어떻게 총 매출을 구할것이냐!
-- SUM(A.PRICE * B.AMOUNT) 금액 * 주문량
2. 조회조건 및 정렬조건 명시 (아래는 정답)
SELECT B.PRODUCT_ID, A.PRODUCT_NAME, SUM(A.PRICE * B.AMOUNT) AS TOTAL_SALES
FROM FOOD_PRODUCT A, FOOD_ORDER B
WHERE A.PRODUCT_ID = B.PRODUCT_ID
AND B.PRODUCE_DATE BETWEEN TO_DATE('2022-05-01', 'YYYY-MM-DD') AND TO_DATE('2022-05-31', 'YYYY-MM-DD')
GROUP BY B.PRODUCT_ID, A.PRODUCT_NAME
ORDER BY TOTAL_SALES DESC, B.PRODUCT_ID ASC
;
끝!
반응형