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

다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블과 아이스크림 성분에 대한 정보를 담은 ICECREAM_INFO 테이블입니다. 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 문을 작성해주세요.

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

133025

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

해설

  • Name
    SELECT FIRST_HALF.FLAVOR
    Type
    Description

    FIRST_HALF 테이블에서 FLAVOR 필드를 선택하여 결과로 반환합니다.

  • Name
    LEFT JOIN ICECREAM_INFO ON FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVOR
    Type
    Description

    FIRST_HALF 테이블을 ICECREAM_INFO 테이블과 왼쪽 조인(Left Join)합니다. 여기서 조인 조건은 두 테이블의 FLAVOR 필드가 같은 경우입니다. 왼쪽 조인은 FIRST_HALF 테이블의 모든 레코드를 포함하고, ICECREAM_INFO 테이블에서 일치하는 FLAVOR가 있는 경우에만 해당 레코드를 포함합니다.

  • Name
    WHERE FIRST_HALF.TOTAL_ORDER >= 3000
    Type
    Description

    FIRST_HALF 테이블에서 TOTAL_ORDER 값이 3000 이상인 레코드만을 필터링합니다.

  • Name
    AND ICECREAM_INFO.INGREDIENT_TYPE LIKE 'fruit_based'
    Type
    Description

    ICECREAM_INFO 테이블에서 INGREDIENT_TYPE 필드가 "fruit_based"인 레코드만을 필터링합니다.

결과적으로, 이 쿼리는 FIRST_HALF 테이블에 있는 아이스크림 향 중에서 총 주문 수(TOTAL_ORDER)가 3000 이상이며, ICECREAM_INFO 테이블에 있는 해당 향의 재료 유형(INGREDIENT_TYPE)이 "fruit_based"인 것들을 찾습니다.

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

SELECT
    FIRST_HALF.FLAVOR
FROM
    FIRST_HALF
LEFT JOIN
    ICECREAM_INFO
ON
    FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVOR
WHERE
    FIRST_HALF.TOTAL_ORDER >= 3000
AND
    ICECREAM_INFO.INGREDIENT_TYPE LIKE "fruit_based"