본문 바로가기
Stay Hungry Stay Foolish/SQL

[MYSQL] 동명 동물 수 찾기

by HANNI하니 2023. 6. 18.

사용 언어 - MYSQL

프로그래머스 LV 2) 동명 동물 수 찾기

 

프로그래머스

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

programmers.co.kr

 

 

 

정답

GROUP BY (정답 맞춘 여부 O) 

동물 이름별 횟수를 조회해야하기 때문에 동물이름으로 GROUP BY

그루핑 한 결과에서 이름이 두번 이상 쓰인 경우는 HAVING 조건에서 거르기

HAVING COUNT(NAME) > 1

HAVING COUNT(NAME) >= 2

SELECT NAME, COUNT(ANIMAL_ID) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME) > 1
ORDER BY NAME

 

WHERE NAME IS NOT NULL

이름이 없는 동물은 집계에서 제외하기

IS NOT NULL 을 왜 안써도 정답이지..? 이유는 COUNT(칼럼명)이었기 때문!

COUNT(칼럼) = 칼럼 값이 NULL이면 0으로 카운트

COUNT(*) = 데이터 값과 상관없이 ROW 자체 카운트 NULL이어도 한 건으로 카운트

SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME

 

 

레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글