[MySQL] WHERE 절 vs HAVING 절 - 언제, 어떻게 써야할까?

MINJI·2025년 3월 14일
1

SQL

목록 보기
3/3

WHERE 절HAVING 절은 모두 조건을 걸 때 사용하지만,
작동 방식과 사용 시점이 다르다


⭐ WHERE 절

  • 언제❔
    • 그룹핑 전, 각 개별 행에 대한 조건
    • SELECT 문에서 데이터를 가져오기 전에 조건을 적용하여 필터링
  • 어떻게❔
    • 필터링할 컬럼의 값을 기준으로 사용
    • 집계 함수(AVG, COUNT, SUM 등) 사용❌
  • 예시:
SELECT APNT_YMD, COUNT(*)
FROM your_table
WHERE APNT_YMD > '2024-01-01'
GROUP BY APNT_YMD;

⭐ HAVING 절

  • 언제❔
    • 그룹핑 후, 집계 함수 결과에 대한 조건
  • 어떻게❔
    • GROUP BY 이후 생성된 그룹에 필터링 적용
    • 집계 함수(AVG, COUNT, SUM 등) 사용⭕
  • 예시:
SELECT APNT_YMD, COUNT(*)
FROM your_table
GROUP BY APNT_YMD
HAVING COUNT(*) > 5;

⭐ 차이점 요약

WHERE 절은

  • GROUP BY 이전
  • 개별 행 필터링
  • 집계함수 사용 불가

HAVING 절은

  • GROUP BY 이후
  • 그룹화된 데이터 필터링
  • 집계함수 사용 가능

참고
https://sooonzero.tistory.com/164

0개의 댓글