-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
그룹함수
- 그룹 함수는 테이블의 전채 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수
- 소계 및 총계 등을 구하기 위해서 그룹 함수를 사용하면 단일 DML만으로도 원하는 작업 가능
유형
- Rollup
- group by a,b union all group by a union all = group by rollup(a,b)
- cube
- group by a,b union all group by a union all group by b union all 전체 집합 결과
- grouping sets
- group by grouping sets(a,b) = group by a union all group by b
ROLLUP
- 지정된 컬럼의 소계 및 총계를 구하기 위해 사용하는 그룹 함수
- 지정 컬럼 수보다 하나 더 큰 레벨만큼 중간 집계 값이 생성
- 지정 컬럼은 계층별로 구성되어 순서가 바뀌면 수행 결과 값이 바뀜
문법
- select 컬럼, 집계함수 from 테이블 명 [where] group by [컬럼명] ROLLUP (그룹화할 컬럼) [having][order by]
- 소계 집계 대상이 되는 컬럼을 RoLLUP 키워드 뒤에 기재
- 소계 집계 대상이 아닌 경우 group by 키워드 뒤에 기재
- slect 뒤에 컬럼이 포함 되는 컬럼이 group by 또는 rullup 키워드 뒤에 기재 되어야 함
CUBE
- 결합 가능한 모든 값에 대해 다차원 집계를 생성하는 그룹 함수
- 내부적으로 대상 컬럼의 순서를 변경하여 또 한번 쿼리를 수행
- 인자로 주어진 컬럼의 결합 가능한 모든 조합에 대해서 집계를 수행하므로 다른 함수보다 시스템 부하가 크다
문법
- select 컬럼명 집계 함수 from 테이블 where group by [컬럼명] cube (그룹화 할 컬럼) [having][order by]
- 소계 집계 대상이 되는 컬럼을 cube 키워드 뒤에 기재
- 소계 집계 대상이 아닌경우 group by 키워드 뒤에 기재
- select 뒤에 포함되는 컬럼이 group by or cube 키워드 뒤에 기제
grouping sets
- 집계 대상 컬럼에 대한 소계를 구할 수 있는 함수
- roullup과 달리 컬럼 간 순서와 무결과한 결과
- 다양한 소계 집합 만들기 가능
문법
- select 컬럼명, 집계 함수 from 테이블 [where] group by [컬럼] grouping sets (그룹할 컬럼) havaing orderby
- 소계 집계 대상이 되는 컬럼을 grouping sets 키워드 뒤에 기재
- 소계 집계 대상이 아닌 경우 group by 키워드 뒤에 기재
- select 뒤에 포함되는 컬럼 이 group by or grouping sets 키워드 뒤에 기재되어야 함
- 그룹화 할 열에 빈 괄호가 포함 되는 경우에 전체 데이터에 대한 집계를 추가함
grouping
- rollup, cube, grouping sets 함수를 사용하는 경우 컬럼의 소계 여부를 확인 할 수 있다
- select 절과 having 절에도 사용가능
문법
- grouping (컬럼명)
- 컬럼이 소계 처리된 결과에는 1을 반환
- 컬럼이 소계 처리안된 결과에는 0을 반환
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels