[MySQL] GROUP BY, HAVING

Jaehyeong Kwon·2022년 8월 5일
0

데이터베이스

목록 보기
4/10

그룹화

GROUP BY 명령어를 통해 특정 컬럼을 기준으로 그룹화할 수 있습니다. 그룹화를 하면 조회된 데이터를 통계 내기 위한 집계 함수 (avg, sum)을 사용하기에 용이해집니다.

SELECT name, COUNT(name), SUM(quantity) FROM test_table GROUP BY name;

GROUP BY로 그룹화 하지 않은 컬럼은 SELECT 해도 정확한 데이터가 나오지 않습니다. 즉, 그룹화 하지 않은 컬럼은 집계 함수를 통해서만 조회하도록 해야합니다. 아래는 그룹화 컬럼이 아닌 quantity 컬럼도 조회하는 경우의 예제입니다.

SELECT name, quantity, COUNT(name), SUM(quantity) FROM test_table GROUP BY name;


2. HAVING

GROUP BY 절에서 조건을 주려면 WHERE가 아닌, HAVING 절을 사용해야 합니다.
SELECT 실행 순서를 보면, WHERE 절이 GROUP BY 보다 먼저 실행되기 때문에, GROUP BY 에 대응되는 HAVING 절이 있습니다.
HAVING은 GROUP BY 뒤에 작성하며, WHERE 와 같은 형식의 조건절을 작성할 수 있습니다.

profile
나무와 같이 성장하는 사람

0개의 댓글