총합, 평균 등의 데이터 분석을 위해서는 복수 행 기준의 데이터를 모아서 처리하는 것을 목적으로 하는 다중행 함수이다.
특성
GROUP BY
구문을 사용해 복수행을 그룹핑SELECT
, HAVING
, ORDER BY
등의 구문에 활용ANSI/ISO SQL 표준은 데이터 분석을 위해 다음 세가지 함수를 정의한다.
함수 | 설명 | 종류 |
---|---|---|
집계함수(Aggregate Function) | 여러 행 또는 테이블 전체 행으로부터 하나의 결괏값을 반환하는 함수 | COUNT, SUM, AVG, MAX, MIN, STDDEV, VARIAN |
그룹함수(Group Function) | 소그룹 간의 소계 및 중계 등의 중간 합계 분석 데이터를 산출하는 함수 | ROLLUP, CUBE, GROUPING SETS |
윈도함수(Window Function) | 데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해서 표준 SQL에 추가된 기능 | 순위함수, 행순서 함수, 그룹 내 비율 함수 |
여러 행 또는 테이블 전체 행으로부터 하나의 결괏값을 반환하는 함수
SELECT 컬럼1, 컬럼2, ..., 집계함수
FROM 테이블명
[WHERE 조건]
GROUP BY 컬럼1, 컬럼2, ...
[HAVING 조건식(집계함수 포함)]
집계함수는 NULL이 포함된 경우 없는 데이터로 판단한다.
테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수
SELECT 컬럼1, 컬럼2, ..., 집계 함수
FROM 테이블명
[WHERE ...]
GROUP BY [컬럼...] ROLLUP 컬럼
[HAVING ...]
[ORDER BY ...]
SELECT 뒤에 포함되는 컬럼이 GROUP BY 또는 ROLLUP 뒤에 기재되어야 한다.
SELECT DEPT, JOB, SUM(SALARY)
FROM DEPT_SALARY
GROUP BY ROLLUP(DEPT, JOB);
SELECT 컬럼1, 컬럼2, ..., 집계 함수
FROM 테이블명
[WHERE ...]
GROUP BY [컬럼...] CUBE(컬럼명 a, ..)
[HAVING ...]
[ORDER BY ...]
SELECT 컬럼1, 컬럼2, ..., 집계 함수
FROM 테이블명
[WHERE ...]
GROUP BY [컬럼...] GROUPING SETS(컬럼명 a, ..)
[HAVING ...]
[ORDER BY ...]