출처
문제
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 ->결과반환
- FROM 절: food_order와 food_product product_id를 기준으로 inner join
- WHERE 절: 생산일자가 2022-05을 포함하는 경우 필터링 하여
- GROUP BY 절: product_id와 product_name으로 그룹화 하는데(product_id당 이름은 한개)
- SELECT 절: product_id와 product_name, .price과amount를 곱한걸 product_id로 그룹화하여 합계를 집계(total_slase)
- ORDER BY 절:total_slase 내림차순, product_id 오름차순
- 결과반환: 생산일자가 2022-05 제품들의 ID별 총 매출
배운점
- 컬럼이 많을 수록 어떤 데이터를 포함하는지 잘 이해하는 것이 필요: 날짜 데이터가 많아서 햇갈렸다
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] 과일로 만든 아이스크림 고르기 (0) | 2024.01.19 |
---|---|
[문제풀이] 없어진 기록 찾기 (0) | 2024.01.19 |
[문제풀이] 즐겨찾기가 가장 많은 식당 정보 출력하기-window(?) (1) | 2024.01.11 |
[문제풀이] 거래가격 조회/가격대 별 상품 개수 구하기 (0) | 2024.01.10 |
[문제풀이] 대여 기록이 존재하는 자동차 리스트 구하기/ 3월에 태어난 여성 회원 목록 출력하기 (1) | 2024.01.10 |