본문 바로가기
문제풀이/SQL 문제풀이

프로그래머스/SQL - 물고기 종류 별 대어 찾기

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

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

WITH CTE AS
    (SELECT ID, FISH_TYPE, LENGTH, (ROW_NUMBER() OVER (PARTITION BY FISH_TYPE ORDER BY LENGTH DESC)) AS NUM
    FROM FISH_INFO)
SELECT C.ID, N.FISH_NAME, C.LENGTH
FROM CTE C
    LEFT JOIN FISH_NAME_INFO N
    ON C.FISH_TYPE = N.FISH_TYPE
WHERE C.NUM = 1
ORDER BY C.ID ASC;

 

이것저것 다 해봤지만, ROW_NUMBER()로 해서 하는게 가장 편했다!