DB/SQL
그거 아셨나요? - WHERE와 HAVING의 차이
뽀루피
2024. 8. 26. 12:26
WHERE와 HAVING은 둘다 조건을 달 수 있는 조건절입니다.
그렇다면 WHERE와 HAVING 둘다 아무 조건을 달 수 있는 것 아닌가 하실 수 있는데 차이가 있습니다.
WHERE
1. 개별 행에 대해 필터링합니다.
2. 그룹화(GROUP BY) 이전에 적용됩니다.
3. 집계 함수(SUM, MAX, COUNT 등)을 사용할 수 없습니다.
HAVING
1. 그룹화 이후에 적용됩니다.
2. 그룹화한 결과에 대해 필터링합니다.
3. 집계 함수를 사용할 수 있습니다.
HAVING절이 그룹화 이후에 필터링을 하기 때문에 그룹화 이전에 필터링되어 그룹화를 진행하는 WHERE절에 비해 덜 효율적일 수 있습니다. 그리고 HAVING절은 그룹화를 한 뒤 필터링이 되기 때문에 그룹화 이후 필터링할 수 있는 조건만 다는 것이 좋습니다.