포포's 코딩&일상 기록

[sql] WHERE 이 아닌 HAVING 으로 원하는 값만 추출하는 필터링하기 본문

카테고리 없음

[sql] WHERE 이 아닌 HAVING 으로 원하는 값만 추출하는 필터링하기

포포252 2023. 10. 5. 22:51

다음 SQL 쿼리를 사용하여 동물 보호소에 들어온 동물 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회할 수 있습니다. 결과는 이름 순으로 정렬됩니다.

 

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

 

이 쿼리는 다음과 같은 작업을 수행합니다:

  1. ANIMAL_INS 테이블에서 이름이 NULL이 아닌 동물의 이름을 선택합니다.
  2. 선택한 이름들을 그룹화하고, 각 그룹의 이름과 해당 이름이 쓰인 횟수를 계산합니다.
  3. 이름이 두 번 이상 쓰인 동물의 결과만 필터링합니다(HAVING COUNT(NAME) >= 2).
  4. 결과를 이름 순으로 정렬합니다(ORDER BY NAME).

이렇게 하면 두 번 이상 쓰인 이름과 해당 횟수가 조회됩니다.