프로그래머스/My SQL

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

싱싱한복초이 2024. 12. 9. 10:41

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

 

프로그래머스

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

programmers.co.kr

[문제]

FISH_INFO에서 평균 길이가 33cm 이상인 물고기들을 종류별로 분류하여 잡은 수, 최대 길이, 물고기의 종류를 출력하는 SQL문을 작성해주세요. 결과는 물고기 종류에 대해 오름차순으로 정렬해주시고, 10cm이하의 물고기들은 10cm로 취급하여 평균 길이를 구해주세요.

컬럼명은 물고기의 종류 'FISH_TYPE', 잡은 수 'FISH_COUNT', 최대 길이 'MAX_LENGTH'로 해주세요.

 

[나의 풀이]

SELECT 
COUNT(*) FISH_COUNT, 
MAX(LENGTH) MAX_LENGTH, 
FISH_TYPE
FROM FISH_INFO
GROUP BY FISH_TYPE
HAVING AVG(IFNULL(LENGTH,10)) >= 33
ORDER BY FISH_TYPE;

 

 

⭐WHERE절과 HAVING절의 차이

 

*HAVING의 필터링 시점은 집계 이후(집계 결과)