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