잡다한 시도/SQL 특별 관리 구역

[SELECT] 중복과 NULL을 제거한 개수 세기 (COUNT, NULL, DISTINCT)

GGOBOOGI 2021. 4. 21. 23:51
반응형

오늘의 문제: 프로그래머스 > 중복 제거하기

요구조건

오늘의 문제는 다음의 요구조건을 만족해야 한다.

1. NAME의 개수를 세야 함 - COUNT

2. NAME 중 NULL인 것은 제외해야 함 - WHERE NAME IS NOT NULL

3. NAME의 중복을 제거해야 함 - DISTINCT

정답

SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL

기억해야 할 것

COUNT

COUNT는 column에 대한 row의 개수를 세어 주는 것이다.

COUNT는 기본적으로 모든 row를 세기 때문에, 중복을 제거하고 싶거나 null을 제거하고 싶으면 WHERE 절을 이용하여 조건을 추가해야 한다.

IS NOT NULL

WHERE 절에서 해당 값이 NULL인지, 아닌지를 판단하기 위해 IS NULL, IS NOT NULL을 이용할 수 있다.

DISTINCT

기본적으로 SQL문은 중복을 제거하지 않는다.

만약, 얻어지는 결과에서 중복을 제거하고 싶으면 SELECT 문에서 DISTINCT를 이용해야 한다.

반응형