inblog logo
|
taker
    SQL문제풀기

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

    김인범's avatar
    김인범
    Nov 12, 2024
    과일로 만든 아이스크림 고르기
    Contents
    해답해설
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/133025

    해답

    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

    RSS·Powered by Inblog