SQL 쿼리 연습/SUM, MAX, MIN

[Lv.3 / 프로그래머스 / SQL] 물고기 종류 별 대어 찾기

김세진 2024. 5. 5. 23:56
반응형

 

 

 

 

프로그래머스

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

programmers.co.kr

 

 

 

 

풀이

 

종류별로 가장 큰 물고기의 길이와 그 물고기의 ID를 출력해야 한다.

 

물고기의 ID를 출력해야 하는 부분 때문에 단순히 집계 함수로 문제를 해결할 수 없다.

따라서 물고기의 종류별로 가장 긴 실제 레코드를 서브쿼리로 구한 뒤 메인 쿼리와 비교하여 해결해야 한다.

NAME을 출력해야 하는 부분은 INNER JOIN을 통해 해결할 수 있다.

 

SELECT
    ID,
    FISH_NAME,
    LENGTH
FROM
    FISH_INFO AS FI
INNER JOIN
    FISH_NAME_INFO AS FNI
ON
    FNI.FISH_TYPE = FI.FISH_TYPE
WHERE
    (FI.FISH_TYPE, FI.LENGTH) IN (
        SELECT
            FISH_TYPE,
            MAX(LENGTH)
        FROM
            FISH_INFO
        GROUP BY
            FISH_TYPE
    )
ORDER BY
    FI.ID

 

 

 

 

 

 

반응형