노아
[프로그래머스] 물고기 종류 별 대어 찾기 본문
Question
물고기 종류 별로 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력하는 SQL 문을 작성해주세요.
물고기의 ID 컬럼명은 ID, 이름 컬럼명은 FISH_NAME, 길이 컬럼명은 LENGTH로 해주세요.
결과는 물고기의 ID에 대해 오름차순 정렬해주세요.
단, 물고기 종류별 가장 큰 물고기는 1마리만 있으며 10cm 이하의 물고기가 가장 큰 경우는 없습니다.
Pseudocode
- 테이블 설명:
- fish_info: 어종 정보가 담긴 테이블.
- fish_name_info: 어종 이름 정보를 가진 테이블.
- 서브쿼리 사용:
- 서브쿼리를 사용하여 각 어종별로 최대 길이(MAX(length))를 계산하고, 이를 m이라는 별칭으로 가져옵니다.
- JOIN 조건:
- fish_info와 fish_name_info를 어종 타입(fish_type)을 기준으로 조인합니다.
- 서브쿼리에서 계산한 최대 길이(m_length)와 실제 길이(length)가 일치하는 행만 가져오도록 필터링합니다.
- 출력:
- 어종의 ID(i.id), 이름(fish_name), 길이(length)를 출력합니다.
- 정렬:
- ID를 기준으로 오름차순 정렬합니다.
Code
SELECT i.id, fish_name, length
FROM fish_info i
JOIN fish_name_info n
ON i.fish_type = n.fish_type
JOIN (SELECT fish_type, MAX(length) AS m_length
FROM fish_info
GROUP BY fish_type) m ON i.fish_type = m.fish_type AND i.length = m.m_length
ORDER BY 1
'알고리즘 > SQL' 카테고리의 다른 글
[프로그래머스] 입양 시각 구하기(2) (2) | 2024.09.20 |
---|---|
[프로그래머스] 업그레이드 된 아이템 구하기 (0) | 2024.09.20 |
[프로그래머스] 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.09.20 |
[프로그래머스] 노선별 평균 역 사이 거리 조회하기 (0) | 2024.09.20 |
[프로그래머스] 분기별 분화된 대장균의 개체 수 구하기 (0) | 2024.09.19 |