본문 바로가기

MySQL

GROUP BY와 HAVING의 차이점

책을 통해 MySQL에 대한 공부를 하던 중 GROUP BY와 HAVING이 등장했다. 처음에 둘의 기능을 이해하기 어려워 포스팅으로 남긴다.

 

GROUP BY

SELECT문을 활용해 정보를 조회할 때 결과값을 그룹화 하여 나타내는 기능이다.

//ex) 학교에서 각 학년별 인원수를 조회하고 싶다.

  SELECT grade, count(*)
    FROM school
GROUP BY grade;

실행 결과

grade | count(*)
----------------
1     | 1,094
----------------
2     | 984
----------------
3     | 1,002

 

 

HAVING

HAVING은 SELECT문에서 그룹화나 집계가 수행된 후에 레코드를 필터링해서 조건에 맞는 데이터만 나타낸다.

//ex) 학교에서 각 학년별 인원수를 조회하되, 1,000명 이상의 학년만 알고싶다.

  SELECT grade, count(*)
    FROM school
GROUP BY grade
  HAVING count(*) >= 1000;

실행 결과

grade | count(*)
----------------
1     | 1,094
----------------
3     | 1,002

 

'MySQL' 카테고리의 다른 글

MySQL Index?  (0) 2023.07.11
MySql ErrorCode: 1046  (0) 2023.04.27
[MySQL] TABLE 구조 잡기  (0) 2022.10.22
FOREIGN KEY 맛보기  (2) 2022.10.03
TABLE JOIN  (1) 2022.10.03