문제
상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회하는 SQL 문을 작성해주세요. 이때 총주문량을 나타내는 컬럼명은 TOTAL_ORDER로 지정해주세요.
구조
SHIPMENT_ID, FLAVOR, TOTAL_ORDER 는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. FIRST_HALF 테이블의 기본 키는 FLAVOR입니다.
FLAVOR, INGREDITENT_TYPE 은 각각 아이스크림 맛, 아이스크림의 성분 타입을 나타냅니다. INGREDIENT_TYPE에는 아이스크림의 주 성분이 설탕이면 sugar_based라고 입력되고, 아이스크림의 주 성분이 과일이면 fruit_based라고 입력됩니다. ICECREAM_INFO의 기본 키는 FLAVOR입니다. ICECREAM_INFO테이블의 FLAVOR는 FIRST_HALF 테이블의 FLAVOR의 외래 키입니다.
예시
완성한 쿼리
-- 코드를 입력하세요
select
ii.ingredient_type,
sum(fh.total_order) total_order
from first_half fh join icecream_info ii on fh.flavor = ii.flavor
group by ii.ingredient_type
order by sum(fh.total_order)
외래키는 Flavor 이기 때문에 각 Flavor로 조인을 시도합니다. 그리고 재료 타입은 ICECREAM_INFO 에, 총 주문량은 FIRST_HALF에 있는 컬럼이기 때문에 각각의 Alias를 부여해주며 Select 해줍니다. 이 때, 총 주문량은 모두 합쳐야 하기 때문에 Sum()을 해주고, 재료 타입을 기준으로 Group By 해줍니다. 마지막으로 총 주문량을 기준으로 정렬하면 문제에서 요구하는 결과물이 나오게 됩니다!
난이도가 1에서 2로 올라서 그런지 1에서 풀 때보단 생각을 더 깊이 해야 하네요! 재밌습니다 ㅎㅎ
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/133026
'코딩테스트 > Oracle DB' 카테고리의 다른 글
[Oracle] 프로그래머스 : 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.12.22 |
---|---|
[Oracle] 프로그래머스 : 진료과별 총 예약 횟수 출력하기 (0) | 2023.12.22 |
[Oracle] 조건에 맞는 도서와 저자 리스트 출력하기 (프로그래머스) (1) | 2023.12.21 |
[Oracle] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (프로그래머스) (0) | 2023.12.20 |
[Oracle] 조건에 부합하는 중고거래 상태 조회하기 ( 프로그래머스 ) (0) | 2023.12.20 |