Database/SQL

[프로그래머스 SQL Lv.2] 중복 제거하기 (MySQL)

imnyoung 2025. 12. 3. 13:35

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/59408

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

1. 테이블 : ANIMAL_INS

NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

 

2. 문제

(1) 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 (2) 이름이 NULL인 경우는 집계하지 않으며 (3) 중복되는 이름은 하나로 칩니다.

본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.

 

3. 문제풀이

(1) 동물의 이름 개수 조회, (2) 이름이 NULL인 경우는 집계X (3) 중복되는 이름은 하나로

count 함수는 이름이 NULL인 경우는 집계하지 않는다.

SELECT count(DISTINCT name)  -- count는 이름이 NULL인 경우는 집계하지 않음. distinct: 중복은 하나로

 

4. 정답

따라서 정답은

SELECT count(DISTINCT name)
FROM animal_ins