프로그래머스 SQL 고득점 Kit - 물고기 종류 별 대어 찾기

Jinyoung Cheon·2024년 12월 21일
0

코딩테스트

목록 보기
8/25

프로그래머스 SQL 고득점 Kit
https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit

SUMMAXMIN

problem

물고기 종류 별로 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력하는 SQL 문을 작성해주세요. 물고기의 ID 컬럼명은 ID, 이름 컬럼명은 FISH_NAME, 길이 컬럼명은 LENGTH로 해주세요. 결과는 물고기의 ID에 대해 오름차순 정렬해주세요. 단, 물고기 종류 별 가장 큰 물고기는 1마리만 있으며 10cm 이하의 물고기가 가장 큰 경우는 없습니다.
FISH_INFO TABLE : ID, FISH_TYPE, LENGTH, TIME
FISH_NAME_INFO TABLE : FISH_TYPE, FISH_NAME

task

  1. 물고기 종류 별로
    -> GROUP BY 생각
FROM FISH_INFO AS A

LEFT JOIN FISH_NAME_INFO AS B

ON A.FISH_TYPE = B.FISH_TYPE
  1. 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력
WHERE LENGTH IN ((SELECT MAX(LENGTH)
       FROM FISH_INFO AS F
       WHERE F.FISH_TYPE = A.FISH_TYPE
       GROUP BY F.FISH_TYPE), LENGTH IS NOT NULL)
  1. 결과는 물고기의 ID에 대해 오름차순 정렬
ORDER BY A.ID ASC;

code

SELECT A.ID, B.FISH_NAME, A.LENGTH

FROM FISH_INFO AS A

LEFT JOIN FISH_NAME_INFO AS B

ON A.FISH_TYPE = B.FISH_TYPE

WHERE LENGTH IN ((SELECT MAX(LENGTH)
       FROM FISH_INFO AS F
       WHERE F.FISH_TYPE = A.FISH_TYPE
       GROUP BY F.FISH_TYPE), LENGTH IS NOT NULL)

ORDER BY A.ID ASC;

note

LEVEL3 문제라고 해서 겁 먹고 들어갔지만 생각보다 할만했던 문제

profile
데이터를 향해, 한 걸음씩 천천히.

0개의 댓글