[sql] SQL HAVING 절을 사용하여 그룹화된 데이터 중 중복값 걸러내기

관계형 데이터베이스에서 데이터를 그룹화하고 통계 함수를 적용할 때 종종 중복된 결과가 발생할 수 있습니다. SQL의 HAVING 절을 사용하여 그룹화된 데이터 중 중복값을 걸러낼 수 있습니다.

HAVING 절의 기본 구조

HAVING 절은 GROUP BY 절과 함께 사용되며, 특정 조건에 따라 그룹화된 데이터를 걸러내는 데에 사용됩니다. 아래는 HAVING 절의 기본 구조입니다.

SELECT column1, SUM(column2)
FROM table
GROUP BY column1
HAVING condition;

위의 쿼리는 table에서 column1로 그룹화하고, condition을 충족하는 그룹화된 데이터만 반환합니다.

중복값 걸러내기 예제

아래의 예제는 products 테이블에서 가격이 1000 이상인 제품들의 평균 가격을 구하되, 같은 가격대의 제품은 한 번만 계산하도록 중복값을 걸러내는 쿼리입니다.

SELECT price, AVG(price) as average_price
FROM products
GROUP BY price
HAVING COUNT(*) = 1 AND price >= 1000;

위 쿼리는 price로 그룹화하고, HAVING 절에서 COUNT(*) = 1 조건을 통해 중복값을 걸러내고, 가격이 1000 이상인 제품의 평균 가격을 구합니다.

이렇게 HAVING 절을 사용하여 그룹화된 데이터 중 중복값을 걸러내어 필요한 통계 함수나 조건을 적용할 수 있습니다.

참고 자료