728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/131117
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 유형
- SQL
- JOIN
문제 난이도
- Lev4
문제 분석
문제에서 구하고자 하는 조건
1. 생산일자가 2022년 5월인 식품들
2. 총 매출 조회
3. 총매출을 기준으로 내림차순 정렬, 총매출이 같다면 식품ID를 기준으로 오름차순 정렬
생산일자 필터링
1. YEAR(B.PRODUCE_DATE) = '2022' AND MONTH(B.PRODUCE_DATE) = '05'
총 매출 조회
1. FOOD_PRODUCT, FOOD_ORDER 를 INNER JOIN 한 이후에, 주문한 상품들의 총 AMOUNT를 더해준다. -> SUM(B.AMOUNT)
2. 전체 주문량에서 상품의 가격을 곱해주면 총매출 금액이 나온다. -> SUM(B.AMOUNT) * A.PRICE AS TOTAL_SALES
정렬
ORDER BY TOTAL_SALES DESC, A.PRODUCT_ID 로 정렬해준다.
전체 코드
SELECT A.PRODUCT_ID, A.PRODUCT_NAME, SUM(B.AMOUNT) * A.PRICE AS TOTAL_SALES
FROM FOOD_PRODUCT A
JOIN FOOD_ORDER B ON A.PRODUCT_ID = B.PRODUCT_ID
WHERE YEAR(B.PRODUCE_DATE) = '2022' AND MONTH(B.PRODUCE_DATE) = '05'
GROUP BY A.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, A.PRODUCT_ID
728x90
반응형
'알고리즘 > SQL' 카테고리의 다른 글
[SQL] 자동차 대여 기록 별 금액 구하기 (1) | 2025.06.11 |
---|---|
[SQL] 그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2025.06.10 |
[SQL] 노선별 평균 역 사이 거리 조회하기 (1) | 2025.06.09 |
[SQL] 조건에 맞는 사원 정보 조회하기 (0) | 2025.05.16 |
[SQL] 입양 시각 구하기 (2) (0) | 2025.05.09 |