코딩테스트/SQL
[프로그래머스][MySQL] Lv. 2 동명 동물 수 찾기
_알파카
2024. 7. 12. 16:32
728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/59041
내 풀이
-- 동물 이름 중 두 번 이상 쓰인 이름과 횟수 조회
-- 이름이 없는 동물은 집계에서 제외, 이름순 출력
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