코딩테스트/SQL

[SQL] 5월 식품들의 총매출 조회하기

박소민 2025. 6. 9. 16:20
5월 식품들의 총매출 조회하기
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

  • 내 풀이
    • 서브쿼리로 2022년 5월에 판매된 상품별 수량 합계(SUM(AMOUNT))를 구함.
    • 해당 결과를 FOOD_PRODUCT 테이블과 PRODUCT_ID 기준으로 JOIN.
    • 각 상품별 총 매출액(PRICE * AMOUNT) 계산.
SELECT P.PRODUCT_ID AS PRODUCT_ID, PRODUCT_NAME, PRICE*AMOUNT AS TOTAL_SALES
FROM FOOD_PRODUCT P
JOIN (SELECT F.PRODUCT_ID AS PRODUCT_ID, SUM(AMOUNT) AS AMOUNT
      FROM FOOD_ORDER F
      WHERE PRODUCE_DATE LIKE '2022-05%'
      GROUP BY 1
    ) AS O
ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY 1
ORDER BY 3 DESC, 1 ASC

 

 

  • 다른 사람 풀이
    • 둘다 어짜피 GROUP BY PRODUCT_ID 해야하므로 한번에 처리가능
SELECT A.PRODUCT_ID, PRODUCT_NAME, SUM(AMOUNT * PRICE) AS TOTAL_SALES
FROM FOOD_PRODUCT A
JOIN FOOD_ORDER B ON A.PRODUCT_ID = B.PRODUCT_ID
WHERE PRODUCE_DATE LIKE '2022-05%'
GROUP BY A.PRODUCT_ID, PRODUCT_NAME
ORDER BY TOTAL_SALES DESC, A.PRODUCT_ID;