코딩테스트/SQL

[프로그래머스][MySQL] Lv. 2 동명 동물 수 찾기

_알파카 2024. 7. 12. 16:32
728x90

문제 설명

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

 

프로그래머스

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

programmers.co.kr

 

내 풀이

-- 동물 이름 중 두 번 이상 쓰인 이름과 횟수 조회
-- 이름이 없는 동물은 집계에서 제외, 이름순 출력
SELECT NAME, COUNT(NAME) as COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME) > 1
ORDER BY NAME;

 

문제의 조건은 

1. 동물 이름 중 두 번 이상 쓰인 이름과 횟수 조회

2. 이름이 없는 동물은 집계에서 제외

3. 이름순 출력

 

이다. 

 

SQL에서 중복을 처리하는 방법은 보통 아래와 같은 2단계를 거친다. 

1. GROUP BY 절 사용하기 : 중복값이 존재하는지 확인하고 싶은 열을 기준으로 GROUP BY를 실행해 열을 합친다. 
2. HAVING절 안에 COUNT 함수 사용하기 : GROUP BY를 통해 그룹핑된 값의 개수가 1개보다 많은지 확인한다. 

 

이를 바탕으로 중복값이 존재하는지 확인하고 싶은 열을 'NAME' 이므로, 

NAME 열을 기준으로  GROUP BY를 한 후, HAVING 조건절에 COUNT를 세어서

각 이름이 몇 개 나왔는지 판단해볼 수 있다!

 

 

끄읏-!

728x90