[헷갈] Group by와 Having

Joo·2024년 4월 30일

RDB & SQL

목록 보기
21/24

WHERE 절에 집계함수를 사용할 수 없다.
그래서 그 경우, WHERE 절 대신 HAVING 절을 사용하고, HAVING 절에 집계함수를 사용할 수 있다.

그런데 SELECT 절이든 HAVING 절이든 집계함수가 등장할 경우에는
무조건 GROUP BY를 사용해야 한다. (SELECT 절에서 집계함수를 사용하는 컬럼 제외하고 모든 컬럼에)

⌨️ 예시

mysql> SELECT police_station '경찰서', SUM(case_number) '총 범죄 건수'
    -> FROM crime_status
    -> WHERE status_type = '발생'
    -> GROUP BY police_station
    -> HAVING SUM(case_number) > 4000;
+--------+--------------+
| 경찰서 | 총 범죄 건수 |
+--------+--------------+
| 영등포 |         5217 |
| 강남   |         4754 |
| 관악   |         5261 |
| 강서   |         4415 |
| 구로   |         4175 |
| 송파   |         5410 |
+--------+--------------+
6 rows in set (0.20 sec)

이 때, 순서는 WHERE → GROUP BY → HAVING임을 명심하자!

profile
적당히 공부한 거 정리하는 곳

0개의 댓글