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
'코딩테스트 > SQL' 카테고리의 다른 글
[프로그래머스][MySQL] Lv. 2 중복 제거하기 (0) | 2024.07.15 |
---|---|
[프로그래머스][MySQL] Lv. 2 특정 물고기를 잡은 총 수 구하기 (0) | 2024.07.15 |
[프로그래머스][MySQL] Lv. 1 특정 형질을 가지는 대장균 찾기 (0) | 2024.07.09 |
[프로그래머스][MySQL] Lv. 1 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.07.09 |
[프로그래머스][MySQL] Lv. 1 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2024.06.06 |