껄껄껄
코딩무새입니다.

이번 포스팅은 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 |