최대 1 분 소요

문제 링크

정답

SELECT 
    FP.PRODUCT_ID, 
    FP.PRODUCT_NAME, 
    FP.PRICE * FO.TOTAL_AMOUNT AS TOTAL_SALES
FROM FOOD_PRODUCT FP
JOIN (
    SELECT PRODUCT_ID, SUM(AMOUNT) AS TOTAL_AMOUNT
    FROM FOOD_ORDER
    WHERE PRODUCE_DATE BETWEEN '2022-05-01' AND '2022-05-31'
    GROUP BY PRODUCT_ID
) FO ON FP.PRODUCT_ID = FO.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, FP.PRODUCT_ID;

✅ Point

  • 조건이 있는 Table을 먼저 필터링, 집계해서 JOIN 대상의 크기를 줄였음