본문 바로가기
Database/SQL문

[SQL] GROUP BY - 2

by Ratataca 2021. 11. 23.

2. GROUP BY을 활용한 예제 - 2

2. 2. 동명 동물 수 찾기

위와 같은 테이블이 주어졌다.

동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회하라.

 

결과

SELECT NAME, COUNT(*) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT > 1 AND NAME IS NOT NULL
ORDER BY NAME

또는

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

 

여기서 주의해야 할 점은 바로! WHERE과 HAVING의 차이점을 이해하는 것이다.

HAVING은 특정 칼럼들을 그룹화한 결과에 조건을 걸고 싶은 것이고 WHERE은 그룹화하기 전에 조건을 거는 것이다.

또한 순서도 눈여겨 볼 필요가 있다.

SELECT 컬럼 
FROM 테이블 
[WHERE 조건식]
GROUP BY 그룹화할 컬럼 
[HAVING 조건식] 
ORDER BY 컬럼1 [, 컬럼2, ...];

'Database > SQL문' 카테고리의 다른 글

[SQL] GROUP BY - 3  (0) 2021.11.24
[SQL] GROUP BY - 1  (0) 2021.11.23

댓글