전공/프로그래머스
(SQL) 주문량이 많은 아이스크림들 조회하기
yha97
2023. 10. 1. 14:44
날짜 : 2023. 10. 01
사용 언어 : oracle
문제
코드
-- 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회
select flavor
from (
select a.flavor, a.total_order + b.total_order
from first_half a
join (
select flavor, sum(total_order) as total_order
from july
group by flavor
) b on a.flavor = b.flavor
order by a.total_order + b.total_order desc
)
where rownum < 4
;
풀이
- july 테이블의 flavor는 first_half 테이블의 외래 키이기 때문에 자연스럽게 july 테이블의 맛이 first_half보다 많거나 같다.
- 그리고 7월에는 서로 다른 두 공장에서 아이스크림 가게로 출하를 진행했기 때문에 각각의 맛에 따라 그룹화하여 각각의 맛들의 총 주문량을 합산한 다음 f9rst_half와 조인을 실행한다.
- 그 다음 맛에 따라 주문량을 상반기와 7월끼리 더한 후 오름차순으로 정렬한 다음, 해당 서브쿼리를 통해 상위 3개의 열만 출력한다.
알게된 점
- 문제 자체는 어렵거나 하진 않았지만 조건이 조금 복잡해 고민을 꽤 했던 문제였다.
참고 사이트
-