본문 바로가기

코딩테스트/SQL - 프로그래머스

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

 

프로그래머스 문제

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

 

풀이

https://school.programmers.co.kr/questions/74349

 

 

 

-- 풀이 쿼리

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

 

 

크게 어려울 것은 없는 문제였지만, 한가지 주의할 점이 있다(본인만 주의하면 될 듯...ㅎ)

 

그건 바로 WHERE절엔 집계함수를 쓸 수 없다는 것.

여러번 이 때문에 헤매었음에도 돌아서면 까먹는달까...

 

그러니까, AVG(IFNULL(LENGTH, 10)) >= 33 이 조건을

WHERE절에 쓰면 안 된다는 것이다. 본인은 이걸 까먹고 왜 틀렸지 한 10분 생각했었다.

 

다시 한번 되새기자.

 

WHERE 절엔 집계함수를 사용할 수 없다!