동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요.
이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
DISTINCT와 COUNT()를 이용하는 문제였다.
DISTINCT는 NULL을 아래와 같이 처리한다.
DISTINCT는 NULL을 포함해서 처리하지만, COUNT는 NULL을 제외하고 처리한다(COUNT(*)인 경우에는 NULL 포함).
SELECT절에 여러 개의 컬럼이 있을 때, DISTINCT는 하나의 컬럼에만 적용하는 것은 불가능하다. SELECT절에서 하나의 컬럼만 사용한다면 할 수 있지만, 여러 개의 컬럼을 사용하면 컬럼을 모두 조합해서 나온 중복 결과 중 하나만 출력한다.