본문 바로가기
문제풀이/SQL(My sql)

[문제풀이] 5월 식품들의 총매출 조회하기

by kime2 2024. 1. 19.
출처

 

문제

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

 

문제에 대한 해석

5월달 생산된 식품들의 총 매출

1. 조건: 생산일자 2022-5
2. 조회: 식품id, 이름,총매출
3. 정렬: 총매출 내림차순, id오름차순

 

 

풀이(MYSQL)

select ord.product_id, pro.product_name, sum(pro.price*ord.amount) as total_slase
from food_order  ord join food_product pro
	on ord.product_id=pro.product_id
where ord.PRODUCE_DATE like '2022-05-%'
group by ord.product_id, pro.product_name
order by sum(pro.price*amount) desc, ord.product_id

 

작동순서

💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환

 

  1. FROM 절: food_order와  food_product product_id를 기준으로 inner join
  2. WHERE 절: 생산일자가 2022-05을 포함하는 경우 필터링 하여
  3. GROUP BY 절: product_id와 product_name으로 그룹화 하는데(product_id당 이름은 한개)
  4. SELECT 절: product_id와 product_name, .price과amount를 곱한걸 product_id로 그룹화하여 합계를 집계(total_slase)
  5. ORDER BY 절:total_slase 내림차순, product_id 오름차순
  6. 결과반환:  생산일자가 2022-05 제품들의 ID별 총 매출

배운점

  • 컬럼이 많을 수록 어떤 데이터를 포함하는지 잘 이해하는 것이 필요: 날짜 데이터가 많아서 햇갈렸다