본문 바로가기
프로그래머스/코딩테스트 연습

SQL lv3 물고기 종류 별 대어 찾기

by 포잉띠 2024. 4. 30.

 

 

with mf as (
select nn.fish_type, nn.fish_name, max(ii.length) as lt
from fish_info ii
join fish_name_info nn on nn.fish_type = ii.fish_type
group by 1, 2
)
select i.id, mf.fish_name, mf.lt as length
from fish_info i
left join mf mf on (i.length = mf.lt and i.fish_type = mf.fish_type)
where mf.lt is not null
order by 1

 

with절 사용하지 않으면 id와 함께 group by 해야해서 id 별 길이를 출력해버린다.

그래서 id를 제외하고 join 시 길이와 이름을 매핑시키기 위해 type과 length를 조건으로 주고 left join 했다.

최대값과 다른 물고기들의 길이가 null이 될것이므로 is no null로 필터링 했다.