[프로그래머스 - SQL] - 중복 제거하기
링크
문제설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
예시
풀이
-
동물의 이름 갯수를 조회하는 것이므로, NAME에 COUNT 함수를 적용할 것입니다.
-
컬럼 내 같은 데이터가 존재하면, 중복을 제거하기 위해 DISTINCT를 사용합니다.
-
중복 데이터를 제거하고자 하는 열은 NAME 이므로, 옆에 DISTINCT 키워드를 붙입니다.
-
NULL 값이 아닌 것을 비교하는 방법은 IS NOT NULL 을 붙입니다.
동물의 이름 갯수를 조회하는 것이므로, NAME에 COUNT 함수를 적용할 것입니다.
컬럼 내 같은 데이터가 존재하면, 중복을 제거하기 위해 DISTINCT를 사용합니다.
중복 데이터를 제거하고자 하는 열은 NAME 이므로, 옆에 DISTINCT 키워드를 붙입니다.
NULL 값이 아닌 것을 비교하는 방법은 IS NOT NULL 을 붙입니다.
[DISTINCT 사용 시 주의할 점]
-
DISTINCT 키워드는 옆에 온 모든 컬럼을 고려하여 중복 제거를 진행합니다.
즉, SELECT DISTINCT COL1, COL2 …를 진행할 경우 -
COL1과 COL2 값이 모두 동일한 row들을 1개로 칩니다.
다시 말하면, DISTINCT 는 SELECT 구문에 여러 컬럼명이 올 때, 그 중 한 개에 대해서만 적용할 수 없다는 말이 됩니다.
Code
SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
Author And Source
이 문제에 관하여([프로그래머스 - SQL] - 중복 제거하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ehdcks3421/프로그래머스-SQL-중복-제거하기
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
Author And Source
이 문제에 관하여([프로그래머스 - SQL] - 중복 제거하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ehdcks3421/프로그래머스-SQL-중복-제거하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)