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 |
댓글