ANIMAL_INS 테이블에 들어온 동물의 총 수를 구하는 문제이다.
| 테이블 | 주요 컬럼 |
|---|---|
ANIMAL_INS | ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE |
동물의 총 수 즉, 전체 개수를 세야 하므로 COUNT()를 써야 한다.ANIMAL_ID를 통해 COUNT(ANIMAL_ID)로 전체 행 수를 셀 수 있다.
그리고 NAME 컬럼으로도 구할 수 있을 것 같아서 작성하고 제출해보니 오답이 나왔다.문제 요구사항을 다시보니 NAME은 NULLABLE이었다. COUNT(컬럼명)은 해당 컬럼이 NULL인 행은 세지 않기 때문에, NAME에 NULL이 있다면 전체 동물 수와 다른 결과가 나올 수 있다.
COUNT(ANIMAL_ID) → NULL 없는 컬럼 → 전체 행 수와 동일 ✅
COUNT(NAME) → NAME이 NULL인 행은 제외 → 결과가 다를 수 있음 ⚠️
COUNT(*) → NULL 상관없이 전체 행 수 ✅
구체적으로 정리한 풀이 흐름:
COUNT(ANIMAL_ID)로 전체 동물 수 집계SELECT COUNT(ANIMAL_ID) AS COUNT
FROM ANIMAL_INS