본문 바로가기
SQL

[SQL] 프로그래머스 고득점 kit - GROUP BY / 동명 동물 수 찾기

by pearhyunjin 2024. 3. 8.

 

 

프로그래머스 SQL 고득전 kit를 풀어보고 정리한 내용입니다.

맞춘 정답과 틀린 경우 생각해내지 못한 문법 위주로 작성하였습니다.

정리 내용 출처는 아래를 참고해 주세요.

 


 

Lv.2 동명 동물 수 찾기

 

 

 

작성 답안

 

NAME을 기준으로 그룹으로 만들고, 거기에 조건을 주기 위해 HAVING을 사용하였다.

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

 

 

추가 답안

 

COUNT(*)으로 작성하면 NAME이 NULL인 row도 포함 하지만 COUNT(NAME)으로 작성하면  NAME이 null인 row는 미포함한다.

즉, 위에서처럼 *을 이용하면 NULL을 포함하므로 반드시 IS NOT NULL 조건이 포함되어야 하지만, COUNT(NAME)을 이용하면 해당 조건은 생략되어도 괜찮다.

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