본문 바로가기
알고리즘/SQL

프로그래머스 동명 동물 수 찾기 (GROUP BY)

by canoe726 2020. 11. 18.
728x90

- 문제 핵심 조건

 

1. 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회

 

=> 모든 동물의 이름과 보호 시작일을 조회 : SELECT

 

=> 이름이 쓰인 횟수를 조회 : COUNT()

 

=> 동물 이름 중 두 번 이상 : 이름이 사용된 횟수를 집계 해야함 - GROUP BY, HAVING

 

 

2. 동물 보호소에 들어온 동물 이름 중 이름이 없는 동물은 집계에서 제외

 

=> 이름이 없는 동물은 집계에서 제외 : 서브쿼리 사용, IS NOT NULL

 

 

3. 결과는 이름 순으로 조회

 

=> ORDER BY

 

 

* 칼럼명 : NAME(이름)

 

 

- 정답 코드

 

SELECT NAME, COUNT(*)
FROM
(
    SELECT *
    FROM ANIMAL_INS
    WHERE NAME IS NOT NULL
)RESTABLE
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME;

 

 

- 문제링크 : programmers.co.kr/learn/courses/30/lessons/59041

 

코딩테스트 연습 - 동명 동물 수 찾기

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

programmers.co.kr

 

728x90

댓글