제 5절 그룹함수
1. 데이터 분석 개요
데이터 분석 함수
총합, 평균 등의 데이터 분석을 위해서는 복수 행 기준의 데이터를 모아서 처리하는 것을 목적으로 하는 다중행 함수이다.
-
특성
- 단일행을 기반으로 산출하지 않고 복수행을 그룹별로 모아 놓고 그룹당 단일 계산 결과를 반환
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에 추가된 기능 | 순위함수, 행순서 함수, 그룹 내 비율 함수 |
2. 집계 함수
여러 행 또는 테이블 전체 행으로부터 하나의 결괏값을 반환하는 함수
- 집계 함수 구문
SELECT 컬럼1, 컬럼2, ..., 집계함수
FROM 테이블명
[WHERE 조건]
GROUP BY 컬럼1, 컬럼2, ...
[HAVING 조건식(집계함수 포함)]
- GROUP BY 에서 주의할 점
- NULL 값은 제외하고 산출한다.
- SELECT 절에서 처럼 ALIAS 사용이 불가하다.
- 집계함수 구문을 사용할 수 없다.
집계함수는 NULL이 포함된 경우 없는 데이터로 판단한다.
3. 그룹 함수
테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수
3.1 ROLLUP 함수
- ROLLUP 에 의해 지정된 컬럼은 소계(소그룹의 합계) 등 중간 집계 값을 산출하기 위한 그룹 함수이다.
- 지정 컬럼 수보다 하나 더 큰 레벨만큼의 중간 집계 값이 생성된다.
- ROLLUP의 지정 컬럼은 계층별로 구성되기 때문에 순서가 바뀌면 수행 결과가 바뀐다.
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);
3.2 CUBE 함수
- CUBE는 결합 가능한 모든 값에 대해 다차원 집계를 생성하는 그룹 함수 이다.
- 연산이 많아 시스템에 부담을 준다.
SELECT 컬럼1, 컬럼2, ..., 집계 함수
FROM 테이블명
[WHERE ...]
GROUP BY [컬럼...] CUBE(컬럼명 a, ..)
[HAVING ...]
[ORDER BY ...]
3.3 GROUPING SETS 함수
- 집계 대상 컬럼들에 대한 개별 집계를 구할 수 있으며, ROLLUP이나 CUBE와는 달리 컬럼 간 순서와 무관한 결과를 얻을 수 있는 그룹함수이다.
- 다양한 소계 집합을 만들 수 있다.
- ORDER BY를 사용해서 집계 대상 그룹과의 표시 순서를 조정하여 체계적으로 보여줄 수 있다.
- 계층구조와 달리 인수들이 평등한 관계라 순서에 상관없이 동일한 결과를 볼 수 있다.
SELECT 컬럼1, 컬럼2, ..., 집계 함수
FROM 테이블명
[WHERE ...]
GROUP BY [컬럼...] GROUPING SETS(컬럼명 a, ..)
[HAVING ...]
[ORDER BY ...]
- GROUPINT SETS 함수 사용시 UNION ALL을 사용한 일반 그룹함수를 사용한 SQL과 같은 결과를 얻을 수 있으며, 괄호로 묶은 집합 별로 집계를 구할 수 있다.
- GROUPING SETS의 경우 일반 그룹함수를 이용한 SQL과 결과 데이터는 같으나 행들의 정렬 순서는 다를 수 있다.
Author And Source
이 문제에 관하여(제 5절 그룹함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@suyeon-jung/제-5절-그룹함수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)