SQL 문제

[프로그래머스 SQL] 동명 동물 수 찾기

빙수빈수 2023. 9. 26. 13:43

https://school.programmers.co.kr/learn/courses/30/lessons/59041

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

[문제]

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

 

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

동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.

 

[코드]

SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME)>=2
ORDER BY NAME;

 

[고찰]

 이번 문제는 동물의 이름과 이름의 등장 횟수를 조회하기 때문에 NAME 컬럼을 GROUP으로 묶어주면 된다. 또한 NAME의 등장 횟수가 2번 이상인 컬럼들만 출력하기 위해서 COUNT(NAME)에 조건을 걸어주어야 한다. 이는 HAVING 절을 사용해야 함을 의미한다. 이 점만 주의하면서 풀어주면 어렵지 않게 해결할 수 있는 문제였다.