[sql] WHERE vs HAVING의 차이점

일반적으로 SQL 쿼리에서 WHERE와 HAVING은 데이터를 필터링하기 위해 사용됩니다. 그러나 두 구문 간에 중요한 차이점이 있습니다. 이 에세이에서는 WHERE와 HAVING의 차이에 대해 설명하겠습니다.

WHERE 구문

WHERE 구문은 행을 필터링하기 위해 사용됩니다. 일반적으로 WHERE 절은 테이블의 각 행을 개별적으로 확인하고, 조건과 일치하는 행만을 결과 집합으로 반환합니다. 이 구문은 집계 함수와 함께 사용할 수 없습니다.

예를 들어, 다음 쿼리는 “employees” 테이블에서 “department”가 ‘Sales’인 행만을 반환합니다.

SELECT * FROM employees
WHERE department = 'Sales';

HAVING 구문

반면에, HAVING 구문은 그룹화된 행에 대한 조건을 적용하는 데 사용됩니다. 일반적으로 HAVING 절은 GROUP BY 구문과 함께 사용되며, 집계 함수를 사용한 결과 집합에 조건을 적용합니다.

예를 들어, 다음 쿼리는 “orders” 테이블에서 각 고객이 주문한 총 금액이 1000보다 큰 고객의 이름과 총 주문 금액을 반환합니다.

SELECT customer, SUM(amount) AS total_amount
FROM orders
GROUP BY customer
HAVING total_amount > 1000;

결론

종합하면, WHERE는 행을 필터링하기 위해 사용되며, HAVING은 그룹화된 결과에 조건을 적용하는 데 사용됩니다. 이해를 돕기 위해 각 구문의 사용 예시와 함께 실제 데이터베이스 쿼리에서의 활용을 다루었습니다.

위의 설명을 통해 WHERE와 HAVING의 차이를 명확히 이해할 수 있을 것입니다.

참고 자료


이제 WHERE와 HAVING의 차이에 대해 더 많이 이해할 수 있게 되셨을 것입니다. 더 궁금한 점이 있다면 언제든지 물어주세요.