
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131117
풀이
SELECT A.PRODUCT_ID, A.PRODUCT_NAME, SUM(A.PRICE*B.AMOUNT) "TOTAL_SALES"
FROM FOOD_PRODUCT A
INNER JOIN FOOD_ORDER B
ON A.PRODUCT_ID = B.PRODUCT_ID
WHERE PRODUCE_DATE LIKE '2022-05%'
GROUP BY A.PRODUCT_ID
ORDER BY SUM(A.PRICE*B.AMOUNT) DESC, A.PRODUCT_ID ASC;
조건에 맞는 식품의 총 매출액을 구하는 문제였습니다. PRODUCT_ID를 기준으로 GROUP BY 하고 SUM(가격*갯수) 구문으로 쉽게 해결할 수 있었습니다.
🐹🐹🐹
저의 풀이 이외에
SELECT P.PRODUCT_ID, P.PRODUCT_NAME, P.PRICE * O.AMOUNT AS TOTAL_SALES
FROM FOOD_PRODUCT P
JOIN (
SELECT PRODUCT_ID, SUM(AMOUNT) AS AMOUNT
FROM FOOD_ORDER
WHERE DATE_FORMAT(PRODUCE_DATE, '%Y-%m') = '2022-05'
GROUP BY PRODUCT_ID
) O
ON P.PRODUCT_ID = O.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, P.PRODUCT_ID
;
위와 같이 서브 쿼리를 통해 조건에 맞는 식품별 총 갯수를 구한 후 총 매출액을 출력한 풀이를 볼 수 있었습니다.🐏🐏🐏
감사합니다.