기혁씨의 삽질표류기
[삽질표류기/SQL] WHERE과 HAVING의 차이?
각시탈코더
2022. 12. 28. 15:05
1.WHERE과 HAVING은 언제 어느 때 사용할까?
WHERE
- 질의 실행 전 살펴봄
- "질의가 처리할 행을 결정"
- 개별 행에 적용
- 집계함수 사용 불가
- ROWID를 찾는데 유리
- 최적화
HAVING
- 질의 실행 후 살펴봄
- 모든 행을 처리한 다음 클라이언트에 반환할 행을 결정
- 결과 집합의 행에 적용
- 집계함수 사용 가능

*SQL이 진행되는 순서
FROM,WHERE,GROUP BY, HAVING, ORDER BY, SELECT
2.WHERE와 HAVING을 섞어 사용할 수 있을까?
:WHERE은 관심있는 행만 읽어 최적화가 가능하지만 HAVING을 사용하는 경우 모든 행을 다 읽어 최적화에 불리하다. WHERE은 최적화를 목적으로 쓰는 데 HAVING은 최적화를 목적으로 하지 않는다. 반대도 마찬가지다. 즉 목적이 다른 두 구문은 함께 사용하지 않는다.