문제

https://programmers.co.kr/learn/courses/30/lessons/59041

풀이

SELECT NAME, COUNT(NAME) FROM ANIMAL_INS
GROUP BY NAME HAVING COUNT(NAME) > 1 ORDER BY NAME
  • WHERE 는 집계함수를 사용 할 수 없다.
  • HAVING 은 집계함수를 가지고 조건비교를 할 때 사용한다.
  • HAVING 은 GROUP BY 와 함께 사용 된다.

추가로, HAVING COUNT > 1 은 왜 틀리냐는 질문을 발견했다.

GROUP BY NAME의 경우, NAME이 NULL인 값들도 그룹으로 포함됩니다.

그래서 COUNT(NAME)으로 NULL을 제외시켜주어야 올바른 결과가 나오나보다.

댓글남기기