CODING TEST/MySQL
Lv2 - 중복 제거하기
iamyuunzo
2025. 7. 21. 14:26
📌 문제 정보
- 문제 이름 : 프로그래머스 - (SUM, MAX, MIN) 중복 제거하기
- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/59408
📌 문제 요약
- ANIMAL_INS 테이블 : ANIMAL_ID(동물의 아이디), ANIMAL_TYPE(생물 종), DATETIME(보호 시작일), INTAKE_CONDITION(보호 시작 시 상태), NAME(이름), SEX_UPON_INTAKE(성별 및 중성화 여부)
- 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
예시)
| ANIMAL_ID | ANIMAL_TYPE | DATETIME | INTAKE_CONDITION | NAME | SEX_UPON_INTAKE |
| A562649 | Dog | 2014-03-20 18:06:00 | Sick | NULL | Spayed Female |
| A412626 | Dog | 2016-03-13 11:17:00 | Normal | *Sam | Neutered Male |
| A563492 | Dog | 2014-10-24 14:45:00 | Normal | *Sam | Neutered Male |
| A513956 | Dog | 2017-06-14 11:54:00 | Normal | *Sweetie | Spayed Female |
- 보호소에 들어온 동물의 이름은 NULL(없음), *Sam, *Sam, *Sweetie입니다. 이 중 NULL과 중복되는 이름을 고려하면, 보호소에 들어온 동물 이름의 수는 2.
출력)
| count |
| 2 |
📌 내 풀이 및 코드
SELECT COUNT(DISTINCT NAME) AS count
FROM ANIMAL_INS;
- MAX로 풀었었는데 그걸 활용하려면 서브쿼리 개념을 알아야 했음. 근데 몰라서 힌트를 받고 다른 방식으로 제출함.
📌 새로 배운 문법
<-- 이번 문제에서 새로 배운 Java 문법 정리 -->
** DISTINCT **
- 중복된 값을 제거하고 유일한 값들만 가져오거나 셀 때 사용
- DISTINCT는 SELECT에서만 사용 가능하고 INSERT, UPDATE, DELETE에서 사용 불가능
- COUNT(DISTINCT...)는 NULL 값을 세지 않음
// 기본 문법
SELECT DISTINCT 컬럼명
FROM 테이블명;