과일로 만든 아이스크림 고르기

김인범's avatar
Nov 12, 2024
과일로 만든 아이스크림 고르기
Contents
해답해설

해답

select f.flavor from first_half as f right outer join icecream_info as i on f.flavor = i.flavor where f.total_order >= 3000 and i.ingredient_type = 'fruit_based' order by f.total_order desc;
 

해설

두 개의 테이블 조회

해당 문제는 두 개의 테이블을 제시하고 있습니다. 1. first_half 테이블
notion image
  1. icecream_info 테이블
notion image
  • 상반기 아이스크림 총 주문량은 first_half 테이블에서 찾을 수 있고, 아이스크림 주 성분이 과일인 것은 icecream_info 테이블에서 찾을 수 있습니다.

두 개의 테이블 합치기

두 개의 테이블을 합쳐보겠습니다.
SELECT * FROM FIRST_HALF AS f RIGHT OUTER JOIN icecream_info AS i ON f.flavor = i.flavor;
notion image
SELECT * 의 경우 합쳐진 두 개의 테이블에 의해 FLAVOR 가 2개로 나타나게 됩니다.
 
SELECT f.SHIPMENT_ID, f.FLAVOR, f.TOTAL_ORDER, i.INGREDIENT_TYPE FROM FIRST_HALF AS f RIGHT OUTER JOIN icecream_info AS i ON f.flavor = i.flavor;
위 쿼리문을 통해 FLAVOR행을 하나만 나타나게 정리했습니다.
notion image
 

문제의 조건

  • 상반기 아이스크림 총주문량(TOTAL_ORDER)이 3,000보다 높으면서 f.total_order > = 3000
  • 아이스크림의 성분(INGREDIENT_TYPE)이 과일인 i.ingredient_type = ‘fruit_based’
  • 아이스크림 맛(FLAVOR)을 총 주문량이 큰 순서 대로 조회 select f.flavor order by f.total_order DESC
 
SELECT f.FLAVOR FROM FIRST_HALF AS f RIGHT OUTER JOIN icecream_info AS i ON f.flavor = i.flavor WHERE f.total_order >= 3000 AND i.ingredient_type = 'fruit_based' ORDER BY f.total_order DESC;
notion image

결과

결과로 상반기 아이스크림 총주문량이 3,000 보다 높으면서 성분이 과일인 아이스크림 strawberry가 나타났습니다.
만약 f. total_order 에서 peach 가 3,200 이었다면 FLAVOR는 peach 아래에 strawberry 가 위치했을 것 입니다.
 

소감

두 개의 테이블을 이용해 조회를 하게 되었는데 RIGHT OUTER JOIN 을 사용하게 되어 당황했었습니다. 프로젝트에 들어가기 전까지 JOIN에 대해서 더 알아봐야겠다는 생각이 들었습니다.
Share article

taker