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 이하의 물고기가 가장 큰 경우는 없습니다.
- 풀이 :
- MySQL
-- FISH_INFO : ID, FISH_TYPE, LENGTH, TIME
-- FISH_NAME_INFO : FISH_TYPE, FISH_NAME
SELECT i.ID, n.FISH_NAME, i.LENGTH
FROM FISH_INFO i
jOIN FISH_NAME_INFO n ON i.FISH_TYPE = n.FISH_TYPE
WHERE (n.FISH_TYPE, i.LENGTH)
IN (
SELECT FISH_TYPE, MAX(LENGTH)
FROM FISH_INFO
GROUP BY FISH_TYPE )
order by i.id;
- where절 안에 select절 해석
- GROUP BY와 MAX 함수를 이용해 물고기 종류별 가장 큰 물고기만 찾음
- fish_type이 같은 물고기를 join on을 통해 테이블 만듦
- 그 중 where절 안의 select절에 포함된 물고기 정보만 select
반응형
'IT > SQL 테스트' 카테고리의 다른 글
[SUM, MAX, MIN] 연도별 대장균 크기의 편차 구하기 (MySQL) (0) | 2025.02.21 |
---|---|
[SUM, MAX, MIN] 잡은 물고기 중 가장 큰 물고기의 길이 구하기 (MySQL) (2) | 2025.02.06 |
[SUM, MAX, MIN] 조건에 맞는 아이템들의 가격의 총합 구하기 (MySQL) (2) | 2025.02.06 |
[SUM, MAX, MIN] 중복 제거하기 (0) | 2025.02.06 |
[SUM, MAX, MIN] 동물 수 구하기 (0) | 2025.02.06 |