그룹함수
- 그룹함수를 이용하여 특정 집합의 소계, 중계, 합계, 총 합계를 구할 수 있다.
- 즉 이러한 합계를 계산하기 위해서 기존에 들어갔던 다양한 노력들이 그룹 함수를 이용하여 간단하게 처리할 수 있게 되었다.
그룹 함수의 종류
ROLLUP
- 소 그룹간의 소계를 계산하는 기능
- ROLLUP함수 내에 인자로 지정된 GROUPING 컬럼은 SUBTOTAL을 생성하는데 사용된다.
- GROUPING 컬럼의 수가 N이라고 했을 때 N+1의 SUBTOTAL이 생성된다.
- ROLLLUP함수 내의 인자의 순서가 바뀌면 결과도 바뀌게 된다. (ROLLUP은 계층 구조임)
CUBE
- 다차원적인 소계를 계산하는 기능
- 결합 가능한 모든 값에 대하여 다차원 집계를 생성
- CUBE함수 내에 컬럼이 N개라면 2의 N승만큼의 SUBTOTAL이 생성됨
- 시스템에 많은 부담을 주기때문에 사용상 주의가 필요함
GROUPING SETS
- 특정 항목에 대한 소계를 계산하는 기능
ROLLUP을 쓰면 합계를 보여준다.
인자를 여러개 넣을 수 있다. 조건별로 모든 경우의 수 보여줌
GROUPING()이 1이면 모든그룹이다. 마지막 값이 원래 NULL이였지만 이름을 붙여줌 여기코드에선
GROUP BY CUBE()안에 넣은 인자별로 합계도 알려줌 (성별,나이)를 넣으면 전체합, 성별별합,나이별합,부서성별별합 2^2개가 나온다)
'Computer Science > 데이터베이스' 카테고리의 다른 글
SQL DCL(Data Control Langauge)- Oracle (0) | 2023.06.10 |
---|---|
SQL 윈도우 함수(WINDOW FUNCTION) - Oracle (1) | 2023.06.10 |
SQL 서브쿼리 - Oracle (1) | 2023.06.10 |
SQL 계층 형 질의와 SELF조인 - Oracle (0) | 2023.06.10 |
SQL 집합연산자(SET OPERATOR) - Oracle (0) | 2023.06.10 |