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