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

silver's avatar
Dec 11, 2024
[SQL문제풀기] 물고기 종류 별 대어 찾기
 

문제

 

내가 작성한 오답

SELECT F.ID, N.FISH_NAME, F.LENGTH FROM FISH_INFO F JOIN FISH_NAME_INFO N ON F.FISH_TYPE = N.FISH_TYPE WHERE F.LENGTH IN (SELECT MAX(LENGTH) FROM FISH_INFO GROUP BY FISH_TYPE) ORDER BY ID ASC;
→ FISH_TYPE별 최대 길이를 구해서 그 길이와 동일한 물고기를 찾는 쿼리이다.
→ 동일한 최대 길이를 가진 다른 타입이 있을 경우를 생각하지 않았다.
→ 그래서 서브 쿼리에 FISH_TYPE도 함께 출력해야한다.
 

내가 작성한 정답

SELECT F.ID, N.FISH_NAME, F.LENGTH FROM FISH_INFO F JOIN FISH_NAME_INFO N ON F.FISH_TYPE = N.FISH_TYPE WHERE (F.FISH_TYPE, F.LENGTH) IN ( SELECT I.FISH_TYPE, MAX(I.LENGTH) FROM FISH_INFO I GROUP BY I.FISH_TYPE) ORDER BY F.ID ASC;
 
💡
다중 컬럼 비교가 가능하다!
 
Share article

silver