[sql] GROUP BY 절과 HAVING 절의 차이점

GROUP BY와 HAVING은 데이터를 그룹화하고 집계하는 데 중요한 역할을 합니다. 하지만 두 절 간에는 몇 가지 차이점이 있습니다.

GROUP BY

GROUP BY 절은 데이터를 그룹화할 때 사용됩니다. 특정 열을 기준으로 데이터를 그룹화하고, 각 그룹 내에서의 집계 함수를 계산할 수 있도록 해줍니다. 이를 통해 데이터를 특정 기준에 따라 묶을 수 있습니다.

예를 들어, SELECT department, AVG(salary) FROM employee GROUP BY department와 같은 쿼리는 각 부서별 평균 급여를 계산할 수 있습니다.

HAVING

HAVING 절은 GROUP BY 절 뒤에 사용되며, 그룹화된 결과 집합에 대한 조건을 지정할 때 사용됩니다. 이를 통해 특정 조건을 만족하는 그룹만을 필터링할 수 있습니다.

예를 들어, SELECT department, AVG(salary) FROM employee GROUP BY department HAVING AVG(salary) > 50000와 같은 쿼리는 평균 급여가 50000 이상인 부서만을 결과로 보여줍니다.

차이점

주요 차이점은 GROUP BY는 데이터를 그룹화할 때 사용되고, HAVING은 그룹화된 데이터에 조건을 적용할 때 사용된다는 것입니다. 즉, GROUP BY는 그룹을 지정하고, HAVING은 그룹을 필터링하는 역할을 합니다.

따라서, GROUP BY는 집계된 데이터를 그룹화하는 데 사용되고, HAVING은 해당 그룹에 조건을 적용하여 그룹을 필터링하는 데 사용됩니다.

위의 내용을 토대로 GROUP BYHAVING의 차이점을 이해하고, 각각의 적절한 상황에서 사용할 수 있도록 하시기 바랍니다.

참고 자료