FOOD_PRODUCT와 FOOD_ORDER 테이블에서
생산일자가 2022년 5월인 식품들의
식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요.
이때 결과는 총매출을 기준으로 내림차순 정렬해주시고
총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요.
SELECT P.PRODUCT_ID, P.PRODUCT_NAME, SUM(O.AMOUNT * P.PRICE) AS TOTAL_PRICE
FROM FOOD_PRODUCT P JOIN FOOD_ORDER O ON P.PRODUCT_ID=O.PRODUCT_ID
WHERE YEAR(O.PRODUCE_DATE)=2022 AND MONTH(O.PRODUCE_DATE)=5
GROUP BY P.PRODUCT_ID, P.PRODUCT_NAME
ORDER BY TOTAL_PRICE DESC, PRODUCT_ID
Join condition은 PRODUCT_ID를 사용했다.
그리고 FOOD_ORDER 테이블은 상품을 주문한 내용을 담고 있는 주문 테이블이기 때문에 여러 개의 PRODUCT_ID와 PRODUCT_NAME이 존재할 수 있고, 하나의 PRODUCT_ID가 다른 PRODUCT_NAME을 가지는 일은 없다.
그렇기 때문에 PRODUCT_ID와 PRODUCT_NAME으로 Grouping을 하고, SUM() 집계 함수를 이용해서 총매출을 구했고, 이를 이용해서 정렬까지 수행했다.