[프로그래머스 SQL] 동명 동물 수 찾기

kiki·2024년 4월 24일
0

프로그래머스

목록 보기
76/79

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/59041

문제 설명

  • 동명의 동물 수 세기 (두 번 이상)
  • 이름이 없는 동물은 집계에서 제외

1차 시도

SELECT NAME, COUNT(NAME) COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY 1
HAVING COUNT(NAME)>1
ORDER BY 1;

설명 그대로 동명의 동물 수를 세기 위해 name으로 group by해 count했다.
그리고 두번 이상 나타난 동물 이름만 조회하기 위해 having으로 조건을 줌!

그리고 where에서 name이 null이 아닌 애들만 걸러서 사용했는데, 어차피 count(name) 하면 null값은 count되지 않기 때문에 having에서 이름이 null인 애들은 필터링 된다.
데이터 수를 줄이고 시작하니 시간이 단축될 순 있겠으나,,, 중복되는 부분이었다!
그러니 where문을 제외해도 통과된다.

정리

  • count: COUNT(*)의 경우 null값도 모두 포함해 count하지만, COUNT(NAME)과 같이 컬럼을 지정해 카운트한다면 null값은 카운트되지않는다.

0개의 댓글