최대 1 분 소요

문제 링크

정답

-- 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 등)를 사용할 수 있음.