본문 바로가기

SQL

[MySQL] 프로그래머스 - 물고기 종류 별 대어 찾기

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

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

 

풀이

WITH FISH_RANK AS (
    SELECT ID, FISH_NAME, LENGTH,
    RANK() OVER (PARTITION BY FISH_TYPE ORDER BY LENGTH DESC) AS LENGTH_RANK
    FROM FISH_INFO
    JOIN FISH_NAME_INFO USING(FISH_TYPE)
)

SELECT ID, FISH_NAME, LENGTH
FROM FISH_RANK
WHERE LENGTH_RANK = 1
ORDER BY ID