코딩테스트 연습 > 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
