[SQL 고득점 Kit] 물고기 종류 별 대어 찾기

썹스·2024년 3월 18일

❓ 문제

물고기 종류 별로 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력하는 SQL 문을 작성해주세요.

물고기의 ID 컬럼명은 ID, 이름 컬럼명은 FISH_NAME, 길이 컬럼명은 LENGTH로 해주세요.
결과는 물고기의 ID에 대해 오름차순 정렬해주세요.
단, 물고기 종류별 가장 큰 물고기는 1마리만 있으며 10cm 이하의 물고기가 가장 큰 경우는 없습니다.

❗️ 문제 풀이

풀이1

with tb as (
    select FISH_TYPE, max(LENGTH)
    from FISH_INFO
    group by FISH_TYPE
)

select
    distinct I.ID	
    ,N.FISH_NAME	
    ,I.LENGTH
from FISH_INFO as I, FISH_NAME_INFO as N, tb
where 1=1
    and I.FISH_TYPE = N.FISH_TYPE
    and (I.FISH_TYPE, I.LENGTH) in (select * from tb)
order by I.ID

풀이2

select
    I.ID
    ,N.FISH_NAME
    ,I.LENGTH
from FISH_INFO as I, FISH_NAME_INFO as N
where 1=1
    and I.FISH_TYPE = N.FISH_TYPE
    and (I.FISH_TYPE, I.LENGTH) in (
        select FISH_TYPE, max(LENGTH)
        from FISH_INFO
        group by FISH_TYPE
    )

📚 느낀점

문제의 난이도가 높아질수록 서브 쿼리의 사용 빈도 또한 높아지고 있다...
서브쿼리에 대한 내용도 꼼꼼하게 학습해야겠다 :)



🔗 Reference

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

profile
코린이

0개의 댓글