프로그래머스 - SQL

[SQL 문제] 과일로 만든 아이스크림 고르기

DorYi 2024. 7. 12. 21:03

문제 설명

 FIRST_HALF 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER 는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. FIRST_HALF 테이블의 기본 키는 FLAVOR입니다.

 ICECREAM_INFO 테이블 구조는 다음과 같으며, FLAVOR, INGREDITENT_TYPE 은 각각 아이스크림 맛, 아이스크림의 성분 타입을 나타냅니다. INGREDIENT_TYPE에는 아이스크림의 주 성분이 설탕이면 sugar_based라고 입력되고, 아이스크림의 주 성분이 과일이면 fruit_based라고 입력됩니다. ICECREAM_INFO의 기본 키는 FLAVOR입니다. ICECREAM_INFO테이블의 FLAVOR는 FIRST_HALF 테이블의 FLAVOR의 외래 키입니다.

 

문제

상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL문을 작성해주세요.

 

문제 풀이

 

풀이1 -서브쿼리로 테이블을 만들어 조인해서 푼 풀이

select t.flavor
from
(
select flavor, total_order
from first_half
where total_order > 3000
) t
join 
(
select flavor, ingredient_type
from icecream_info
where ingredient_type = 'fruit_based'
) i on t.flavor=i.flavor
order by total_order desc

 

 

풀이2 - 두 테이블을 조인해 where절을 이용해 푼 풀이

select i.flavor
from
first_half f
join icecream_info i on f.flavor=i.flavor
where total_order > 3000
      and ingredient_type = 'fruit_based'
order by 1

 

 

풀이3 - where절에 서브쿼리를 넣어 푼 풀이

select FLAVOR
from first_half
where flavor in (select flavor from ICECREAM_INFO where INGREDIENT_TYPE = 'fruit_based')
      and total_order > 3000
order by total_order desc