문제 설명
다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블과 아이스크림 성분 정보를 담은 ICECREAM_INFO 테이블입니다.
FIRST_HALF의 SHIPMENT_ID, FLAVOR, TOTAL_ORDER는 각각 아이스크림 공장에서 가게까지의 출하 번호, 아이스크림 맛, 상반기 총주문량을 나타냅니다. FIRST_HALF의 기본 키는 FLAVOR입니다.
ICECREAM_INFO의 FLAVOR, INGREDIENT_TYPE은 각각 아이스크림 맛, 아이스크림의 성분 타입을 나타내며, 주 성분이 설탕이면 sugar_based, 과일이면 fruit_based가 입력됩니다. ICECREAM_INFO의 기본 키는 FLAVOR이며, ICECREAM_INFO.FLAVOR는 FIRST_HALF.FLAVOR의 외래 키입니다.
테이블 스키마
FIRST_HALF
| SHIPMENT_ID | INT(N) | FALSE |
| FLAVOR | VARCHAR(N) | FALSE |
| TOTAL_ORDER | INT(N) | FALSE |
ICECREAM_INFO
| FLAVOR | VARCHAR(N) | FALSE |
| INGREDIENT_TYPE | VARCHAR(N) | FALSE |
문제
상반기 아이스크림 총주문량이 3,000보다 높고, 아이스크림의 주 성분이 과일인 아이스크림의 **맛(FLAVOR)**을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성하세요.
예시 데이터
FIRST_HALF
| 101 | chocolate | 3200 |
| 102 | vanilla | 2800 |
| 103 | mint_chocolate | 1700 |
| 104 | caramel | 2600 |
| 105 | white_chocolate | 3100 |
| 106 | peach | 2450 |
| 107 | watermelon | 2150 |
| 108 | mango | 2900 |
| 109 | strawberry | 3100 |
| 110 | melon | 3150 |
| 111 | orange | 2900 |
| 112 | pineapple | 2900 |
ICECREAM_INFO
| chocolate | sugar_based |
| vanilla | sugar_based |
| mint_chocolate | sugar_based |
| caramel | sugar_based |
| white_chocolate | sugar_based |
| peach | fruit_based |
| watermelon | fruit_based |
| mango | fruit_based |
| strawberry | fruit_based |
| melon | fruit_based |
| orange | fruit_based |
| pineapple | fruit_based |
설명
총주문량이 3,000을 초과하는 맛은 chocolate, white_chocolate, strawberry, melon입니다.
이 중 주 성분이 과일(fruit_based)인 맛은 strawberry, melon이며, 총주문량 내림차순으로 정렬하면 melon, strawberry 순입니다.
기대 출력
| melon |
| strawberry |
문제 접근
이 문제는 설명에 있는대로 그대로 풀면 되는 거라 딱히 뭘 생각할 필요가 없다.
다만 JOIN을 할 때 INNER JOIN을 해야될지 OUTER JOIN을 사용해야 될지는 잘 생각해 봐야한다.
SQL문
SELECT FH.FLAVOR
FROM FIRST_HALF AS FH JOIN ICECREAM_INFO AS II ON FH.FLAVOR = II.FLAVOR
WHERE FH.TOTAL_ORDER >= 3000 AND II.INGREDIENT_TYPE = 'fruit_based'
ORDER BY TOTAL_ORDER DESC;
-- 총 주문량이 3,000 보다 높으면
-- WHERE : FIRST_HALF의 TOTAL_ORDER >= 3000 AND INGREDIENT_TYPE : 'fruit_based'
-- SELECT : FLAVOR
-- ORDER BY : TOTAL_ORDER DESC;
'코딩 테스트 준비 > 문제' 카테고리의 다른 글
| 프로그래머스 - 인기있는 아이스크림 (SELECT, MYSQL) (0) | 2025.09.23 |
|---|---|
| 프로그래머스 - 12세 이하인 여자 환자 목록 출력하기 (SELECT, MYSQL) (0) | 2025.09.23 |
| 프로그래머스 - 조건에 부합하는 중고거래 댓글 조회하기 (SELECT, MYSQL) (0) | 2025.09.22 |
| 프로그래머스 - N으로 표현 (DP) (0) | 2025.09.21 |
| 20. 프로그래머스 - 게임 맵 최단 거리 (bfs) (4) | 2025.08.29 |