본문 바로가기
프로그래머스/SQL

COUNT(*) VS COUNT(열) [프로그래머스] Lv.2 동명 동물 수 찾기.MySQL

by 몰라닉네임 2024. 9. 13.

그냥 아무 생각없이 COUNT 를 썼다간 다른 결과를 얻을 수 있음 

그냥 아무 생각없이 COUNT 를 썼다간 다른 결과를 얻을 수 있음 

 

문제 

[프로그래머스] Lv.2 동명 동물 수 찾기.MySQL

 

 

출처

https://school.programmers.co.kr/learn/courses/30/lessons/59041?language=mysql

 

프로그래머스

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

programmers.co.kr

 

문제에서 ! 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 라는 문구!!!가 있기 때문에 null 값 제외

 

COUNT(*) VS COUNT(열)

 

두개의 차이는 NULL 값의 체크여부

 - COUNT(*)은 NULL 이여도 개수에 포함

 - COUNT(특정 컬럼)은 NULL 값 포함하지 않음

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

 

  • COUNT(NAME)은 NAME 열의 null이 아닌 값만 세는 방식입니다. 즉, NAME이 null인 행은 카운트에서 제외됩니다.
  • 만약 NAME에 null 값이 포함되어 있다면, null 값은 계산하지 않습니다.

 

SELECT NAME, COUNT(*) AS COUNT 
FROM ANIMAL_INS 
GROUP BY NAME
HAVING COUNT(*) >= 2 
ORDER BY NAME

 

  • COUNT(*)은 해당 그룹 내 모든 행을 셉니다. 열의 값이 null이더라도 그 행은 카운트에 포함됩니다.
  • NAME이 null이어도 그 행은 계산됩니다.