IT무새/Database

[MySQL] HAVING

코딩무새 2025. 3. 25. 21:42

껄껄껄

코딩무새입니다.


 

이번 포스팅은 HAVING 입니다.

HAVING은 WHERE절과 마찬가지로 조건을 지정할 때 사용하는 데 사용하는데요.

어떻게 다를까요?

포스팅 작성해 보겠습니다~

 

HAVING?

HAVING절은 조건을 지정하는 문법인데요.

집계 함수와 함께 사용하여 그룹화된 데이터에 대해 조건을 걸 때 유용합니다.

WHERE절의 경우 그룹화전에 조건이 지정되어 WHERE로 필터 된 데이터들이 그룹화되는데요.

그룹화된 데이터를 다시 조건을 지정하고 싶을 때 HAVING을 사용할 수 있습니다.

 

기본문법

HAVING절 기본 문법입니다.

SELECT {COLUMN1}, 집계함수({COLUMN2})
FROM {TABLE_NAME}
WHERE {WHERE_CONDITION}
GROUP BY {COLUMN1}
HAVING {CONDITION};

 

WHERE절의 조건에 맞는 데이터를 COULM1으로 그룹화하여 나온 결과를 다시 HAVING으 조건을 다시 필터 합니다.

 

예제쿼리

다음과 같은 그룹화된 샘플 데이터가 있습니다.

여기서 total_quantity 값이 10 이상인 데이터만 보고 싶은데요.

HAVING을 써보겠습니다.

SELECT product_no, SUM(quantity) AS total_quantity
FROM sales
GROUP BY product_no
ORDER BY total_quantity DESC, product_no ASC;
+------------+----------------+
| product_no | total_quantity |
+------------+----------------+
|          1 |             23 |
|          2 |             10 |
|          3 |              8 |
|          4 |              3 |
|          5 |              3 |
+------------+----------------+
5 rows in set (0.00 sec)

 

HAVING total_quantity  >= 10 조건을 넣어서 그룹화된 데이터에서 10 이상의 값만 추출하였습니다.

SELECT product_no, SUM(quantity) AS total_quantity
FROM sales
GROUP BY product_no
HAVING total_quantity >= 10
ORDER BY total_quantity DESC, product_no ASC;
+------------+----------------+
| product_no | total_quantity |
+------------+----------------+
|          1 |             23 |
|          2 |             10 |
+------------+----------------+
2 rows in set (0.01 sec)

 

참 간단하죠~


 

HAVING 절은 집계 함수와 함께 그룹화된 데이터를 필터링할 때 꼭 필요한 도구입니다.

WHERE 절과의 차이를 명확히 이해하고 적절하게 사용한다면 유용하게 쓸 수 있을 겁니다.

'IT무새 > Database' 카테고리의 다른 글

[MySQL] 데이터 그룹화 | GROUP BY  (2) 2025.03.09
[MySQL] LIKE 연산자  (3) 2025.02.09
[MySQL] IN 연산자  (3) 2025.02.06
[MySQL] Mysql에 CSV 데이터 Import | HeidiSQL  (2) 2025.02.01
[MySQL] 쿼리 조건 | WHERE Clause  (2) 2025.02.01