본문 바로가기
내일배움캠프/Daily Routine (SQL)

[내일배움캠프] SQL Daily Routine 50. 5월 식품들의 총매출 조회하기

by TIP__ 2024. 10. 14.

안녕하세요.
50회차 과제 "5월 식품들의 총매출 조회하기"입니다.

문제 설명

다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블과 식품의 주문 정보를 담은 FOOD_ORDER 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품코드, 식품분류, 식품 가격을 의미합니다.

 

FOOD_ORDER 테이블은 다음과 같으며 ORDER_ID, PRODUCT_ID, AMOUNT, PRODUCE_DATE, IN_DATE, OUT_DATE, FACTORY_ID, WAREHOUSE_ID는 각각 주문 ID, 제품 ID, 주문량, 생산일자, 입고일자, 출고일자, 공장 ID, 창고 ID를 의미합니다.

문제

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

풀이

/* 조건
* product_id, product_name, total_sales
* produce_date = 2022년 5월
* 총매출 기준 내림차순 정렬 desc
* 총매출이 같은 경우 식품 ID 기준 오름차순 정렬 asc
*/
select p.product_id, p.product_name, sum(p.price * o.amount) as total_sales
from food_product p join food_order o on p.product_id = o.product_id
where date_format(o.produce_date, '%Y-%m') = '2022-05'
group by 1, 2
order by 3 desc, 1 asc

 

저처럼 처음해보시는 분들에게 이 글이 조금이나마 도움이 되었으면 좋겠습니다.

댓글