[sql] SQL HAVING 절과 WHERE 절의 차이점

SQL 쿼리를 작성할 때 WHERE 절과 HAVING 절을 사용하여 데이터를 조건에 따라 필터링할 수 있습니다. 이 두 절은 데이터베이스에서 원하는 결과를 얻는 데 중요한 역할을 합니다. 하지만 그들 사이에는 몇 가지 중요한 차이점이 있습니다.

WHERE 절

WHERE 절은 쿼리의 결과 집합을 필터링하는 데 사용됩니다. 이 절은 집계 함수와 함께 사용되는 것이 아니라 개별 레코드의 필터링에 주로 사용됩니다. WHERE 절은 특정 조건을 만족하는 레코드만을 반환합니다.

SELECT column1, column2
FROM table_name
WHERE condition;

HAVING 절

반면에, HAVING 절은 집계 함수와 함께 그룹화된 결과를 필터링하는 데 사용됩니다. 일반적으로 GROUP BY 절과 함께 사용되며, 그룹화된 결과에 조건을 적용하여 원하는 그룹을 필터링합니다. HAVING 절은 집계 함수를 기반으로 필터링하는 데 사용됩니다.

SELECT column1, COUNT(column2) as count
FROM table_name
GROUP BY column1
HAVING count > 5;

요약

즉, WHERE 절은 개별 레코드를 필터링하는 데 사용되고, HAVING 절은 집계 함수를 기반으로 그룹화된 결과를 필터링하는 데 사용됩니다.

이러한 차이점을 이해하면 데이터를 정확하게 필터링하여 원하는 결과를 쉽게 얻을 수 있습니다.