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

2025. 8. 14. 09:40·프로그래밍 언어/02. SQL

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

🔍 문제

물고기 종류 별로 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력하는 SQL 문을 작성해주세요.

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


🎯정답

-- 내 풀이
SELECT C.ID, D.FISH_NAME, C.LENGTH
FROM
    (SELECT A.ID, A.FISH_TYPE, A.LENGTH
    FROM FISH_INFO A JOIN (
                        SELECT FISH_TYPE, MAX(LENGTH) AS LENGTH
                        FROM FISH_INFO
                        GROUP BY FISH_TYPE) B
                    ON A.FISH_TYPE = B.FISH_TYPE AND A.LENGTH = B.LENGTH) C JOIN FISH_NAME_INFO D ON C.FISH_TYPE = D.FISH_TYPE
ORDER BY C.ID;
-- WHERE 절에 IN을 사용한 풀이
SELECT
    D.FISH_NAME,
    A.ID,
    A.LENGTH
FROM
    FISH_INFO A
JOIN
    FISH_NAME_INFO D
ON
    A.FISH_TYPE = D.FISH_TYPE
WHERE
    (A.FISH_TYPE, A.LENGTH) IN (
        SELECT
            FISH_TYPE,
            MAX(LENGTH)
        FROM
            FISH_INFO
        GROUP BY
            FISH_TYPE
    )
ORDER BY
    A.ID;

❓풀이

  • 나는  FROM 절에 연속해서 서브쿼리를 두 번 사용해서 풀이했으나, where절에 서브쿼리를 한번만 사용해서 IN으로 FISH_TYPE과 LENGTH를 찾아내는 방법도 있다.

'프로그래밍 언어 > 02. SQL' 카테고리의 다른 글

[SQL] 프로그래머스 LV.4 보호소에서 중성화한 동물  (2) 2025.08.14
[SQL] 프로그래머스 LV.3 대장균의 크기에 따라 분류하기 2  (1) 2025.08.14
[SQL] 프로그래머스 LV.3 대장균들의 자식의 수 구하기  (4) 2025.08.13
[SQL] 프로그래머스 LV.3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기  (2) 2025.08.10
[SQL] 프로그래머스 LV.3 헤비 유저가 소유한 장소  (0) 2025.08.10
'프로그래밍 언어/02. SQL' 카테고리의 다른 글
  • [SQL] 프로그래머스 LV.4 보호소에서 중성화한 동물
  • [SQL] 프로그래머스 LV.3 대장균의 크기에 따라 분류하기 2
  • [SQL] 프로그래머스 LV.3 대장균들의 자식의 수 구하기
  • [SQL] 프로그래머스 LV.3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
dalleeoppaa
dalleeoppaa
DA, GIS 공부 기록
  • dalleeoppaa
    달래오빠
    dalleeoppaa
  • 전체
    오늘
    어제
    • 분류 전체보기 (113) N
      • GIS (22)
        • 01. GIS TIL (13)
        • 02. OpenSource Geo Data (6)
        • 03.사이드 프로젝트 (1)
      • 프로젝트 (6)
        • 01. 상권분석 지도 (3)
        • 02. olist 고객 RFM 분석 (3)
      • PointCloud (1)
      • 프로그래밍 언어 (58) N
        • 01. Python (1)
        • 02. SQL (49)
        • 03. C++ (3) N
        • 04. TIL (5) N
      • 데이터분석 (23)
        • 01. Google Cloud Platform (1)
        • 02. GA4 & GTM (1)
        • 03. LookerStudio (4)
        • 04. Apach Spark (7)
        • 05. 데이터 시각화 (10)
      • 인턴 (2)
        • 01. NPL (2)
        • 02. TIL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    sql코테
    solvesql
    프로그래머스lv3
    GIS
    프로그래머스
    데이터분석가코테
    MySQL
    태블로연습
    프로그래머스코테
    프로그래머스SQL
    데이터분석가
    c++독학
    데이터분석
    postgresql연습
    태블로신병훈련소
    데이터분석취준
    태블로부트캠프
    PostgreSQL
    코딩테스트
    SQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
dalleeoppaa
[SQL] 프로그래머스 LV.3 물고기 종류 별 대어 찾기
상단으로

티스토리툴바