1. 문제 풀이 아이디어
GROUP BY절로 그룹화하여 개수, 최대 길이, 평균 길이를 구하고 평균이33이상인 그룹을 필터링하여 문제를 해결한다.
2. 나의 정답 코드
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;3. 정리
FROM절에서fish_info테이블을 조회하고GROUP BY절로fish_type별로 그룹화한다.
SELECT절에서COUNT(*)로 개수를fish_count로,MAX(length)로 최대 길이를max_length로,fish_type을 조회한다.
HAVING절에서AVG(IFNULL(length, 10))를 사용하여length가NULL이면10으로 대체한 후 평균을 구하고, 평균 길이가33이상인 그룹만 필터링한다.
ORDER BY절에서fish_type을 기준으로 정렬한다.
Share article