SQL/프로그래머스 SQL

MySQL 프로그래머스 SQL 고득점 Kit 동명 동물 수 찾기 문제 답

진리뷰 2023. 9. 14. 19:02
반응형

 

 

MySQL-프로그래머스-SQL-고득점-Kit-동명-동물-찾기-문제-답-썸네일
동명 동물 수 찾기 정리

 

 

프로그래머스 SQL 고득점 Kit SELECT에서 '동명 동물 수 찾기' 문제와 답을 공유합니다.

*저는 MYSQL 버전입니다.

 

 

프로그래머스 동명 동물 수 찾기 문제 설명

 

MySQL-프로그래머스-SQL-고득점-Kit-동명-동물-찾기-문제-설명
동명 동물 수 찾기 문제 설명

 

 

 

프로그래머스 동명 동물 수 찾기 문제

 

  • 문제 의도: GROUP BY 사용.
  • 두 번 이상 쓰인 이름, 해당 이름 횟수 출력.
  • 동물 이름에서 NULL 제외.
  • 동물 이름 순 정렬.

 

MySQL-프로그래머스-SQL-고득점-Kit-동명-동물-찾기-문제
동명 동물 수 찾기 문제

 

 

 

프로그래머스 동명 동물 수 찾기 답

 

  • 이름 별 카운트 필요하므로 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 ,...등등에도 별칭을 사용하면 가독성이 좋다.
반응형
top