ANIMAL_INS 테이블에서 중복을 제거한 동물 이름의 수를 구하는 문제이다.
| 테이블 | 주요 컬럼 |
|---|---|
ANIMAL_INS | ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE |
개수를 세야 하므로 COUNT()를 써야 한다. "중복 제거"라는 조건을 어떻게 표현할지에서 막혔다.
SELECT COUNT(*) NAME FROM ANIMAL_INS
여기서 "중복 제거"를 코드로 옮기려면 DISTINCT 키워드가 필요하다는 것을 정리하였다. DISTINCT는 중복된 값을 한 번만 세도록 해주는 키워드이며, COUNT() 함수 안에 넣어서 함께 사용할 수 있다.
COUNT(DISTINCT 컬럼명)
COUNT(NAME)과 COUNT(DISTINCT NAME)의 차이를 예시로 비교하면 다음과 같다.
NAME 컬럼: ['바둑이', '바둑이', '나비', '나비', '메리']
COUNT(NAME) → 5 (중복 포함 전체 개수)
COUNT(DISTINCT NAME) → 3 (중복 제거한 종류 수)
구체적으로 정리한 풀이 흐름:
COUNT(DISTINCT NAME)으로 중복 제거 후 개수 집계SELECT COUNT(DISTINCT NAME) AS COUNT
FROM ANIMAL_INS