[SQL] 중복 제거하기

이말감·2022년 2월 1일
0

SQL

목록 보기
2/14

문제

링크

코드

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

풀이

중복 제거를 하고 싶을 때는 컬럼 명 앞에 써줘야 한다.

SELECT DISTINCT NAME FROM ANIMAL_INS

그런데 개수를 구하라고 했으니까 COUNT()로 묶어준다.

문제에서 이름이 널일 때는 제외하라고 적혀있었는데, MYSQL에서 COUNT(컬럼명)을 할 때 알아서 널을 제외하고 갯수를 세준다.

다양한 유형의 MYSQL COUNT

  • COUNT()
    -> COUNT (
    ) 함수는 번호를 반환합니다.
    -> SELECT 문에 의해 검색된 행의 수 (NULL 및 중복 값을 포함하는 행을 포함)

  • COUNT(표현식)
    -> COUNT(표현식)은 표현식이 NULL이 아닌 값을 계산합니다.
    -> 표현식은 열 이름과 같이 단순한 것일 수도 있고, IF 함수와 같은 복잡한 표현식일 수도 있습니다.

  • COUNT(DISTINCT 표현식)
    -> DISTINCT 키워드는 표현식에 대해 고유한 널이 아닌 값만 계산합니다.
    -> 예를 들면, COUNT(DISTINCT CUSTOMER_NAME) : 고객의 이름에 대해 고유한 값이 있는 행만 계산합니다.

참고

위를 바탕으로 코드를 다시 써보면

SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS

이렇게 WHERE을 쓰지 않고도 널이 아닌, 중복이 없는 이름이 모두 몇 개인지 구할 수 있다.

profile
전 척척학사지만 말하는 감자에요

0개의 댓글