전공/프로그래머스

(SQL) 주문량이 많은 아이스크림들 조회하기

yha97 2023. 10. 1. 14:44

날짜 : 2023. 10. 01

사용 언어 : oracle

 

문제

https://school.programmers.co.kr/learn/courses/30/lessons/133027

 

코드

-- 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개의 열만 출력한다.

 

 

알게된 점

- 문제 자체는 어렵거나 하진 않았지만 조건이 조금 복잡해 고민을 꽤 했던 문제였다.

 

 

참고 사이트