[SQL 고득점 Kit] 업그레이드 된 아이템 구하기

썹스·2024년 3월 18일

❓ 문제

아이템의 희귀도가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬주세요.

❗️ 문제 풀이

select 
    I.ITEM_ID
    ,I.ITEM_NAME
    ,I.RARITY
from ITEM_INFO as I, ITEM_TREE as T
where 1=1 
    and I.ITEM_ID = T.ITEM_ID
    and T.PARENT_ITEM_ID in
    (select 
        ITEM_INFO.ITEM_ID 
     from ITEM_INFO 
     where 1=1 
        and ITEM_INFO.RARITY = 'RARE')
order by 1 desc
;

다른 풀이

with tb as (
    select
        I.ITEM_ID
    from ITEM_INFO as I
    where I.RARITY = 'RARE'
)

select
    distinct I.ITEM_ID
    ,I.ITEM_NAME
    ,I.RARITY
from ITEM_INFO as I, ITEM_TREE as T, tb
where 1=1
    and I.ITEM_ID = T.ITEM_ID
    and T.PARENT_ITEM_ID in (select * from tb)
order by 1 desc

📚 느낀점

SQL 고득점 Kit-select 부분에서 가장 어렵게 느낀 문제였다.
처음 접근 방법이 조금 어려웠지만, 나름 재미있었던 문제였다 :)



🔗 Reference

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

profile
코린이

0개의 댓글