Programing/데이터베이스(MySQL)

[프로그래머스] 5월 식품들의 총매출 조회하기 (Level 4)

hye3193 2023. 12. 8. 23:31

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

 

문제: FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요.

 

select food_product.product_id, product_name, (price * sum(amount)) as total_sales
from food_product inner join food_order
    on food_product.product_id = food_order.product_id
where produce_date like '2022-05-%'
group by product_id
order by total_sales desc, product_id asc

 

food_product와 food_order를 product_id 기준으로 이너 조인 한 뒤,

where문으로 2022-05월 생산된 투플만 선택해 준다

 

groub by로 product_id를 기준으로 묶어주면 각 product의 price와 amount가 한 투플 안에 들어가기 때문에 total_sales를 구할 수 있다(food_order 테이블에는 같은 product 주문이 여러 번 있을 수 있기 때문에 group by로 묶어줘야 함)

 

마지막으로 order by로 요구사항에 맞게끔 정렬시켜 주면 된다