반응형
프로그래머스 SQL 고득점 Kit SELECT에서 '동명 동물 수 찾기' 문제와 답을 공유합니다.
*저는 MYSQL 버전입니다.
프로그래머스 동명 동물 수 찾기 문제 설명
프로그래머스 동명 동물 수 찾기 문제
- 문제 의도: GROUP BY 사용.
- 두 번 이상 쓰인 이름, 해당 이름 횟수 출력.
- 동물 이름에서 NULL 제외.
- 동물 이름 순 정렬.
프로그래머스 동명 동물 수 찾기 답
- 이름 별 카운트 필요하므로 COUNT(name), GROUP BY name, 예시에 따라 별칭 COUNT.
- 이름 없는 동물 집계 제외이므로, name IS NOT NULL.
- 두 번 이상 쓰인 이름 조회이므로 COUNT(name) >= 2.
- 이때 name그룹화가 선실행 되었고 name 에 조건을 걸어야 하기에, HAVING사용.
만약 WHERE를 쓰면 에러가 날 것이다.
실행 순서를 고려하면, GROUP BY보다 WHERE가 먼저 실행된다.
하지만 WHERE는 집계함수 사용이 불가하기 때문에 에러난다.
- 이름 순 정렬이므로 ORDER BY 1.
SELECT
name, COUNT(name) COUNT
FROM
animal_ins
GROUP BY name
HAVING name IS NOT NULL AND COUNT(name) >= 2
ORDER BY 1;
동명 동물 수 찾기 답 추가 정리
- COUNT(): NULL 포함.
- COUNT(컬럼): NULL 제외.
- WHERE: 집계함수 사용 불가.
- HAVING: GROUP BY와 사용, 집계함수 사용 가능.
- 별칭 사용 시 WHERE, HAVING ,...등등에도 별칭을 사용하면 가독성이 좋다.
반응형
'SQL > 프로그래머스 SQL' 카테고리의 다른 글
MySQL 프로그래머스 SQL 고득점 Kit 입양 시각 구하기(1) 문제 답 (0) | 2023.09.25 |
---|---|
MySQL 프로그래머스 SQL 고득점 Kit 고양이와 개는 몇 마리 있을까 문제 답 (0) | 2023.09.19 |
MySQL 프로그래머스 SQL 고득점 Kit 성분으로 구분한 아이스크림 총 주문량 문제 답 (0) | 2023.09.13 |
MySQL 프로그래머스 SQL 고득점 Kit 최솟값 구하기 문제 답 (0) | 2023.09.08 |
MySQL 프로그래머스 SQL 고득점 Kit 오프라인/온라인 판매 데이터 통합 문제 답 (0) | 2023.09.08 |