FOOD_PRODUCT와 FOOD_ORDER 테이블에서
생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요.
이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요.
SELECT
p.PRODUCT_ID,
p.PRODUCT_NAME,
SUM(o.AMOUNT * p.PRICE) AS TOTAL_SALES
FROM FOOD_PRODUCT p
JOIN FOOD_ORDER o ON o.PRODUCT_ID = p.PRODUCT_ID
WHERE DATE_FORMAT(o.PRODUCE_DATE, '%Y-%m') = '2022-05'
GROUP BY o.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, p.PRODUCT_ID ASC
GROUP BY에는 SELECT절의 모든 non-aggregate 컬럼 추가
항상 표준 SQL로 작성하는 것이 좋음 (다른 DB 호환성, 명확성)
SELECT
p.PRODUCT_ID,
p.PRODUCT_NAME,
SUM(o.AMOUNT * p.PRICE) AS TOTAL_SALES
FROM FOOD_PRODUCT p
JOIN FOOD_ORDER o ON o.PRODUCT_ID = p.PRODUCT_ID
WHERE DATE_FORMAT(o.PRODUCE_DATE, '%Y-%m') = '2022-05'
GROUP BY p.PRODUCT_ID, p.PRODUCT_NAME -- ❗ 두 컬럼 모두 포함
ORDER BY TOTAL_SALES DESC, p.PRODUCT_ID ASC