코딩테스트/SQL

[SQL Lv3] 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기

박창준 2024. 12. 2. 14:05

https://school.programmers.co.kr/learn/courses/30/lessons/298519

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 해석

평균 길이가 33CM 이상인 물고기들을 종류별로 분류해서 잡은 수, 최대 길이, 물고기의 종류를 출력한다.

10CM 이하인 물고기들은 10CM로 취급하여 계산한다.

 

먼저 물고기 길이가 NULL인 칼럼을 10으로 만들어주기위해 서브쿼리를 활용했다.

인라인 뷰에서 IFNULL절로 LENGTH가 NULL인 칼럼을 10으로 만들었고,

해당 테이블에서 데이터를 조회한 뒤 HAVING절로 평균 길이가 33CM 이상인 칼럼만 추출했다.

그리고 FISH_TYPE으로 그룹핑을 진행하였다.

 

SELECT 
    COUNT(*) AS FISH_COUNT, 
    MAX(LENGTH) AS MAX_LENGTH, 
    FISH_TYPE
FROM (
    SELECT 
        IFNULL(LENGTH,10) AS LENGTH,
        FISH_TYPE
    FROM FISH_INFO
) AS F

GROUP BY FISH_TYPE
HAVING AVG(LENGTH) >=33
ORDER BY FISH_TYPE