본문 바로가기

Algorithm/SQL

(MYSQL) - 프로그래머스 (SQL 고득점 kit - GROUP BY) : 동명 동물 수 찾기

반응형

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

GROUP BY HAVING을 사용해보는 문제였습니다.

 

풀이방법

 1. 열을 선택합니다 : ANIMAL_INS table로부터 NAME, COUNT(NAME)을 SELECT로 선택합니다.

 

 2. 열 이름을 변경합니다. : COUNT(NAME)을 select하게 된다면 결과에 COUNT(NAME)열로 표시되므로 AS절을 이용해 COUNT(NAME)을 COUNT열로 예시의 답안과 같게 만들어 줍니다. AS절은 생략하고 공백으로 구분하여 원하는 대체 텍스트를 입력하셔도 무방합니다.

 

 3. 그룹화합니다 : 이름이 같은 것들끼리 그룹화 되도록 하는데 조건이 있습니다. 바로 COUNT(NAME) 즉 같은 이름의 개수가 2이상인 조건입니다. HAVING 절을 이용해 그룹화의 조건을 걸 수 있습니다.

 

 4. 이름 순으로 오름차순(사전순) 정렬합니다.

Code

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