728x90
GROUP BY
- GROUP으로부터 NULL이 아닌 값을 결합한 문자열 결과를 반환
- 모두 NULL 인 값만 있는 경우, NULL을 반환
- 기본 형식
SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼;
- 조건 처리 후에 컬럼 그룹화
SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼;
- 컬럼 그룹화 후에 조건 처리
SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼 HAVING 조건식;
- 조건 처리 후에 컬럼 그룹화 후에 조건 처리
SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼 HAVING 조건식;
- ORDER BY가 존재하는 경우
SELECT 컬럼 FROM 테이블 [WHERE 조건식]
GROUP BY 그룹화할 컬럼 [HAVING 조건식] ORDER BY 컬럼1 [, 컬럼2, 컬럼3 ...];
예제
- 예제 테이블
- type 그룹화하여 name 갯수 조회 (컬럼 그룹화)
SELECT type, COUNT(name) AS cnt FROM hero_collection GROUP BY type;
- 결과
- type 1 초과인, type 그룹화하여 name 갯수 조회 (조건 처리 후 컬럼 그룹화)
SELECT type, COUNT(name) AS cnt FROM hero_collection WHERE type > 1 GROUP BY type;
- 결과
- type 그룹화하여 name 갯수를 가져온 후, 그 중에 갯수가 2개 이상인 데이터 조회 (조건 처리 후에 컬럼 그룹화 후에 조건 처리)
SELECT type, COUNT(name) AS cnt FROM hero_collection GROUP BY type HAVING cnt >= 2;
- 결과
- type 1 초과인, type 그룹화하여 name 갯수를 가져온 후, 그 중에 갯수가 2개 이상인 데이터 조회 (조건 처리 후에 컬럼 그룹화 후에 조건 처리)
SELECT type, COUNT(name) AS cnt FROM hero_collection WHERE type > 1 GROUP BY type HAVING cnt >= 2;
- 결과
- type 1 초과인, type 그룹화하여 name 갯수를 가져온 후, 그 중에 갯수가 2개 이상인 데이터를 type 내림차순 정렬로 조회 (내림차순 정렬)
SELECT type, COUNT(name) AS cnt FROM hero_collection
WHERE type > 1 GROUP BY type HAVING cnt >= 2 ORDER BY type DESC;
- 결과
728x90
'프로그래밍 > Database' 카테고리의 다른 글
MySQL 내부 조인 (Inner Join) (0) | 2020.05.03 |
---|---|
MySQL 인덱스 (Index) (0) | 2020.05.02 |
MySQL 타입 변환 함수 (Type Conversion Functions) (0) | 2020.04.29 |
MySQL 문자열 함수 (String Fuctions) - (2) (0) | 2020.04.29 |
MySQL 문자열 함수 (String Fuctions) - (1) (0) | 2020.04.29 |