[SQL] 연습

[MySQL] 프로그래머스 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기

Simon Yoon 2025. 3. 23. 16:00

문제:

FISH_INFO에서 평균 길이가 33cm 이상인 물고기들을 종류별로 분류하여 잡은 수, 최대 길이, 물고기의 종류를 출력
- 물고기 종류에 대해 오름차순으로 정렬
- 10cm 이하의 물고기들은 10cm로 취급

 

해결방법:

1. COUNT, AVG, MAX, GROUP BY 를 사용하여 물고기 종류별 평균 길이와 최대 길이 조회

2. 조회한 테이블에서 WHERE 로 평균 길이가 33cm 이상인 물고기만 조회

3. ORDER BY 로 오름차순 정렬

 

예시 코드:

SELECT FISH_COUNT, MAX_LENGTH, FISH_TYPE
FROM
    (
    SELECT COUNT(1) FISH_COUNT, FISH_TYPE, AVG(IFNULL(LENGTH, 10)) AVG_LENGTH, MAX(IFNULL(LENGTH, 10)) MAX_LENGTH
    FROM FISH_INFO
    GROUP BY FISH_TYPE
    ) T1
WHERE AVG_LENGTH >= 33
ORDER BY FISH_TYPE ASC
;