코딩테스트/SQL

[프로그래머스][MySQL] Lv. 4 5월 식품들의 총매출 조회하기

_알파카 2024. 7. 16. 01:25
728x90

문제 설명

https://school.programmers.co.kr/learn/courses/30/lessons/131117

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

4단계 문제이지만, 크게 어렵지 않은 문제이다!

 

주어진 문제의 조건과 테이블 정보는 다음과 같다. 

FOOD_PRODUCT : 식품 ID, 식품 이름, 식품코드, 식품분류, 식품 가격
FOOD_ORDER   : 주문 ID, 제품 ID, 주문량, 생산일자, 입고일자, 출고일자, 공장 ID, 창고 ID
- 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회
총 매출은 가격 * 판매량
- 총매출을 기준으로 내림차순 정렬, 식품 ID를 기준으로 오름차순 정렬

 

가장 주의할 점은 총 매출인데, 이 정보의 경우 가격(PRICE) * 총 판매량(SUM(AMOUNT)) 를 통해 구하면 된다! 

 

내 풀이

SELECT p.PRODUCT_ID, 
        p.PRODUCT_NAME, 
        (p.PRICE * SUM(o.AMOUNT)) AS TOTAL_SALES
FROM FOOD_PRODUCT p INNER JOIN FOOD_ORDER o
    ON p.PRODUCT_ID = o.PRODUCT_ID
WHERE o.PRODUCE_DATE LIKE '2022-05%'
GROUP BY p.PRODUCT_NAME
ORDER BY TOTAL_SALES DESC, PRODUCT_ID ASC;

 

1. 두 개의 테이블에서 겹치는 컬럼인 RPODUCT_ID로 JOIN을 한다. 

2. 원하는 날짜를 %를 통해 구한다. 저렇게 하면, 2022-05 뒤에 아무거나 와도 조건에 맞는 컬럼이 반환된다. 

3. 문제에서 주어진대로 식품 id, 이름, 총 매출을 출력한다. 

 

728x90