https://school.programmers.co.kr/learn/courses/30/lessons/131117
SELECT o.product_id,
p.product_name,
SUM(o.amount) * p.price AS total_sales
FROM food_order o
INNER JOIN food_product p ON o.product_id = p.product_id
WHERE YEAR(o.produce_date) = 2022 AND MONTH(o.produce_date) = 5
GROUP BY o.product_id
ORDER BY total_sales DESC, o.product_id
1. 생산일자는 food_order 테이블에 있기 때문에 해당 테이블을 기준으로 삼고, 식품이름과 가격 정보가 필요하기 때문에 food_product 테이블과 JOIN 해준다. 이때 주문이 들어간 상품에 대한 정보만 필요하기 때문에 INNER JOIN을 해준다.
2. 생산일자가 2022년 05월인 데이터를 필터링하기 위해 WHERE를 사용한다.
3. 상품 ID별 주문 수량을 파악하기 위해 GROUP BY를 사용하고, SUM으로 주문량을 집계한다.
4. total sales를 구하기 위해 총주문량 * 가격 계산을 해준다.
5. 문제에서 원하는대로 정렬조건을 걸어준다.
'SQL > 문제풀이' 카테고리의 다른 글
[프로그래머스] 보호소에서 중성화한 동물 📌 (0) | 2024.02.12 |
---|---|
[프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기 📌 (0) | 2024.02.12 |
[프로그래머스] 입양 시각 구하기 (2) (0) | 2024.02.12 |
[프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2024.02.12 |
[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기 📌 (0) | 2024.02.12 |