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

NoHae·2025년 2월 4일

SQL

목록 보기
58/86

문제 출처

코딩테스트 연습 > SUM, MAX, MIN > 물고기 종류 별 대어 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/293261

문제 설명


접근 방법

where 절에서 fish_type 각각의 가장 큰 LENGTH를 가져오기 위해 서브 쿼리를 이용한다.

서브 쿼리 안에서는
FISH_TYPE을 가져오는데 group by로 각 FISH_TYPE의 종류 중 가장 긴 길이(HAVING LENGTH = MAX(LENGTH) 인 것을 가져온다.

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

알게된 점

각 종류별로 MAX인 값은 추출할 수 있었으나 본 절에서 group by FISH NAME을 사용하면 ID를 가져오는데 문제가 있었다.
이를 해결 하는 방법은 where 절에서 각 종류별 MAX(LENGTH) 인 FISH_TYPE을 가져오면 된다.
출처
https://velog.io/@hajinheee/SQLLevel3-%EB%AC%BC%EA%B3%A0%EA%B8%B0-%EC%A2%85%EB%A5%98-%EB%B3%84-%EB%8C%80%EC%96%B4-%EC%B0%BE%EA%B8%B0

문제푼 흔적

profile
노력 해보려고 하는 사람(00년생 소프트웨어융합학과, 24년 12월 부터 백엔드 및 코테 공부 시작)

0개의 댓글