[프로그래머스] 물고기 종류 별 대어 찾기/MySQL - Lv.3

2024. 10. 29. 09:58·Coding Test/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 이하의 물고기가 가장 큰 경우는 없습니다.


예시

예를 들어 FISH_INFO 테이블이 다음과 같고

ID FISH_TYPE LENGTH TIME
0 0 30 2021/12/04
1 0 50 2020/03/07
2 0 40 2020/03/07
3 1 20 2022/03/09
4 1 NULL 2022/04/08
5 2 13 2021/04/28
6 0 60 2021/07/27
7 0 55 2021/01/18
8 2 73 2020/01/28
9 1 73 2021/04/08
10 2 22 2020/06/28
11 2 17 2022/12/23

FISH_NAME_INFO 테이블이 다음과 같다면

FISH_TYPE FISH_NAME
0 BASS
1 SNAPPER
2 ANCHOVY

'BASS' 중 가장 큰 물고기는 60cm 로 물고기 ID 가 6이고, 'SNAPPER' 중 가장 큰 물고기는 73cm 로 물고기 ID가 9입니다. 'ANCHOVY' 중 가장 큰 물고기는 73cm 로 물고기 ID가 8입니다. 따라서 물고기 ID(ID) 에 대해 오름차순 정렬한다면 결과는 다음과 같습니다.

ID FISH_NAME LENGTH
6 BASS 60
8 ANCHOVY 73
9 SNAPPER 73

📌유형

SUM, MAX, MIN

✍🏻풀이

서브쿼리를 사용한 이유
- group by fish_type으로 실행하면 ID가 의존적이므로 오류가 발생한다.
물고기 종류 별로 max값을 구한 서브쿼리 안에 최대 길이를 가진 물고기라면
그것의 ID, 물고기 이름, 길이를 ID에 대해 오름차순으로 출력한다.

💻코드

select ID, FISH_NAME, LENGTH
from FISH_INFO F inner join FISH_NAME_INFO N on F.FISH_TYPE = N.FISH_TYPE
# left outer join을 사용해도 무관
where (F.FISH_TYPE, LENGTH) in (select FISH_TYPE, max(LENGTH)
                               from FISH_INFO
                               group by FISH_TYPE)
order by ID
저작자표시 비영리 변경금지

'Coding Test > SQL' 카테고리의 다른 글

[프로그래머스] 부모의 형질을 모두 가지는 대장균 찾기/MySQL - Lv.2  (0) 2024.10.31
[프로그래머스] 조건에 맞는 개발자 찾기/MySQL - Lv.2  (1) 2024.10.31
[프로그래머스] 우유와 요거트가 담긴 장바구니/MySQL - Lv.4  (0) 2024.09.29
[프로그래머스] 조건에 맞는 사용자 정보 조회하기/MySQL - Lv.3  (1) 2024.09.28
[프로그래머스] 대장균의 크기에 따라 분류하기1/MySQL - Lv.3  (0) 2024.09.28
'Coding Test/SQL' 카테고리의 다른 글
  • [프로그래머스] 부모의 형질을 모두 가지는 대장균 찾기/MySQL - Lv.2
  • [프로그래머스] 조건에 맞는 개발자 찾기/MySQL - Lv.2
  • [프로그래머스] 우유와 요거트가 담긴 장바구니/MySQL - Lv.4
  • [프로그래머스] 조건에 맞는 사용자 정보 조회하기/MySQL - Lv.3
The Engineer, Lucy
The Engineer, Lucy
열심히 공부하는 중💦
  • The Engineer, Lucy
    Growing up for My Future💕
    The Engineer, Lucy
    열심히 공부하는 중💦
    • Instagram
    • GitHub
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Computer Science
        • Data Structure
        • Algorithms
        • Operating System
        • Network
        • Database System
      • Infra
      • Linux
      • Shell N
      • Docker
      • Kubernetes
      • AWS
      • GCP
      • CICD
      • IaC
      • Coding Test
        • Algorithms
        • SQL
      • ETC
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 링크

    • Lucy's Instagram
    • Lucy's GitHub
  • 인기 글

  • 태그

    Baekjoon
    다이나믹 프로그래밍
    mysql
    오블완
    cs 기초 지식 정리
    자바
    network
    네트워크 기초 지식
    너비 우선 탐색
    K8s
    코딩테스트 공부
    인프라
    네트워크 기초 지식 정리
    gcp
    쿠버네티스
    docker
    Kubernetes
    프로그래머스
    백준
    bfs
    DP
    dfs
    네트워크
    티스토리챌린지
    Java
    너비우선탐색
    cs 기초 지식
    programmers
    도커
    클라우드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
The Engineer, Lucy
[프로그래머스] 물고기 종류 별 대어 찾기/MySQL - Lv.3
상단으로

티스토리툴바