https://school.programmers.co.kr/learn/courses/30/lessons/293261
1. Problem
물고기 종류 별로 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력하는 SQL 문을 작성해주세요. 결과는 물고기의 ID에 대해 오름차순 정렬해주세요.
2. Analysis
1. 물고기 종류 별로 가장 큰 물고기를 구하기
SELECT
FISH_TYPE
,MAX(LENGTH) AS LENGTH_MAX
FROM FISH_INFO
GROUP BY
FISH_TYPE
2. 1번에서 구한 테이블과 FISH_INFO 테이블의 FISH_TYPE과 LENGTH의 값이 일치하는 조건을 주어 종류 별로 가장 큰 물고기 ID를 구할 수 있다.
WHERE (F.FISH_TYPE, F.LENGTH) IN
(
SELECT
FISH_TYPE
,MAX(LENGTH) AS LENGTH_MAX
FROM FISH_INFO
GROUP BY
FISH_TYPE
)
3. 물고기 이름을 구하기 위해 FISH_NAME_INFO 테이블 조인
INNER JOIN FISH_NAME_INFO N
ON F.FISH_TYPE = N.FISH_TYPE
3. Solution
-- 코드를 작성해주세요
SELECT
F.ID
,N.FISH_NAME
,F.LENGTH
FROM FISH_INFO F
INNER JOIN FISH_NAME_INFO N
ON F.FISH_TYPE = N.FISH_TYPE
WHERE (F.FISH_TYPE, F.LENGTH) IN
(
SELECT
FISH_TYPE
,MAX(LENGTH) AS LENGTH_MAX
FROM FISH_INFO
GROUP BY
FISH_TYPE
)
ORDER BY
F.ID
;
'Algorithm > SQL' 카테고리의 다른 글
[SQL] 프로그래머스 - 특정 세대의 대장균 찾기 (0) | 2024.07.13 |
---|---|
[SQL] 프로그래머스 - 부서별 평균 연봉 조회하기 (0) | 2024.07.13 |
Leetcode SQL 50 - 602. Friend Requests II: Who Has the Most Friends (1) | 2024.03.23 |
Leetcode SQL 50 - 1070. Product Sales Analysis III (1) | 2024.03.23 |
Leetcode SQL 50 - 1321. Restaurant Growth (0) | 2024.03.23 |