코딩테스트/프로그래머스

증복 제거하기 MySQL(프로그래머스)

멍토 2020. 7. 15.

출처 : https://programmers.co.kr/learn/courses/30/lessons/59408

 

코딩테스트 연습 - 중복 제거하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

문제

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. 

ANIMAL_INS 테이블 구조는 다음과 같으며, 

ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE 

각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.



동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요.

이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.

 

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

 

여기서부터 조금 어려워집니다.

동물의 이름이 몇개인지 구해야 합니다. 따라서 중복을 제거하거나 그룹으로 묶는 방식이 있을것입니다.

또한 이름이 NULL인 경우는 제외해야 하므로 NULL이 아닌경우를 추가해야 합니다.


MYSQL에서는 DISTINCT라는 명령어를 사용하면 중복을 제거됩니다.

여기에 저번 문제에서 사용했던 COUNT를 이용하여 체크를 합니다.

추가로 조건문에서 NAME이 NULL이 아닌것만 뽑아냅니다.

 

댓글

💲 광고입니다.