1. 문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
두 테이블 FIRST_HALF, ICECREAM_INFO을 JOIN하여 상반기 아이스크림 총 주문량(TOTAL_ORDER)이 3,000보다 높으면서 아이스크림의 주 성분(INGREDIENT_TYPE)이 과일(fruit_based)인 아이스크림의 맛(FLAVOR)을 총 주문량이 큰 순서대로(내림차순) 조회하는 문제.
FIRST_HALF 테이블의 FLAVOR 컬럼은 ICECREAM_INFO 테이블의 FLAVOR 컬럼을 참조하는 외래 키.
2. 풀이
아이스크림에 맛(flavor)의 주 성분(ingredient_type)은 ICECREAM_INFO 테이블에서 확인 가능하므로 두 테이블에 대한 JOIN이 필요하다. 조인 조건은 외래 키라고 언급한 flavor을 기준으로 잡으면 된다.
- 주 성분이 과일인 아이스크림 : JOIN icecream_info ON icecream_info.flavor = first_half.flavor
WHERE icecream_info.ingredient_type = 'fruit_based' - 총 주문량이 3,000 초과 : AND first_half.total_order > 3000
- 총 주문량 기준 내림차순 정렬 : ORDER BY first_half.total_order DESC
✏️ 정답 쿼리
-- 코드를 입력하세요
SELECT fh.flavor
FROM first_half fh
JOIN icecream_info ii ON ii.flavor = fh.flavor
WHERE ii.ingredient_type = 'fruit_based'
AND fh.total_order > 3000
ORDER BY fh.total_order DESC
=> 테이블명을 다 쓰기엔 번거로우므로 테이블 별칭(alias) 사용
'[Programmers] > - SQL' 카테고리의 다른 글
[Oracle][Programmers] 인기있는 아이스크림 (0) | 2025.05.24 |
---|---|
[Oracle][Programmers] 조건에 부합하는 중고거래 댓글 조회하기(Lv 1) (0) | 2025.05.23 |
[Oracle][Programmers] 조건에 맞는 도서 리스트 출력하기 (1) | 2025.05.21 |
[Oracle][Programmers] 평균 일일 대여 요금 구하기 (0) | 2025.05.20 |
[Oracle][Programmers] 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2025.05.19 |