본문 바로가기
Data/MySQL

[MySQL] GROUP BY - 그룹핑 / HAVING

by prinha 2020. 12. 15.
반응형

1. GROUP BY 컬럼

SELECT 절에는 1) GROUP BY 뒤에서 사용한 컬럼들 또는 2) COUNT, MAX 등과 같은 집계 함수만 올 수 있다.

거꾸로 말해 GROUP BY 뒤에 쓰지 않은 컬럼들은 SELECT 뒤에 올 수 없다.

SELECT
    gender,
    COUNT(*),
    AVG(height),
    MIN(weight)
FROM copang_main.member
GROUP BY gender;

 

2. 2가지 이상의 컬럼 그룹핑

SELECT
    SUBSTR(address, 1, 2) AS region,
    gender,
    count(*)
FROM copang_main.member
GROUP BY SUBSTR(address, 1, 2), gender;

 

3. HAVING - GROUP BY에 대한 조건절

반드시 GROUP BY한 컬럼에 대해서만 HAVING절을 쓸 수 있고, WHERE절로 대체 하지 못한다.

SELECT
    SUBSTR(address, 1, 2) AS region,
    gender,
    count(*)
FROM copang_main.member
GROUP BY SUBSTR(address, 1, 2), gender
HAVING region = '서울' -- HAVING : ~을 가지고 있는
	   AND gender = 'm' ; 

 

 

반응형