책을 통해 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 |