[Programmers] 동명 동물 수 찾기
정답
-- ANIMAL_INS: ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE
SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT > 1
ORDER BY NAME;
✅ Point
- 집계 함수(COUNT, SUM, 등)는 WHERE 절에서 사용할 수 없다.
- 이유: WHERE는 GROUP BY 이전에 실행되므로, 아직 집계 결과가 존재하지 않음.
- 집계된 값을 기준으로 조건을 걸고 싶을 때는 HAVING을 사용해야 한다.
- HAVING은 GROUP BY 이후 실행되므로, 집계 결과(COUNT, SUM 등)를 사용할 수 있음.