728x90
반응형
문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/131117
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 핵심
- FOOD_ORDER 테이블에 id당 mount가 1개만 있는게 아니라 산재되어있다.
- 예시의 일부분이다. P0017의 AMOUNT는 1200과 1000이다. 따라서 id로 group by를 진행하고 sum를 사용해서 AMOUNT를 합칠 필요가 있다.
2. 코드(MySQL)
# 생산일자 2022년 5월 식품들의 식품id, 이름, 총매출
# 총매출 내림차순, 식품id 오름차순
# order table에서 id 당 mount가 산재되어있다. 따라서 group by를 통해서 id당 amount를 합계시킨다.
with temp as (
select PRODUCT_ID, sum(AMOUNT) as AMOUNT
from FOOD_ORDER
where year(PRODUCE_DATE) = 2022 and month(PRODUCE_DATE) = 5
group by PRODUCT_ID
)
select T.PRODUCT_ID, P.PRODUCT_NAME , T.AMOUNT * P.PRICE as TOTAL_SALES
from temp T
inner join FOOD_PRODUCT P on T.PRODUCT_ID = P.PRODUCT_ID
order by TOTAL_SALES desc, T.PRODUCT_ID asc;
728x90
반응형
'PS > SQL' 카테고리의 다른 글
[SQL] 자동차 평균 대여 기간 구하기 (0) | 2024.02.12 |
---|---|
[SQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.02.11 |
[SQL] 주문량이 많은 아이스크림들 조회하기 (2) | 2024.02.10 |
[SQL] 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2024.02.07 |
[SQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2024.02.07 |