[SQLD] 3-9. 그룹 함수(Group Function) - 키워드 요약 | 정리 | SQLD 공부 | 개발자 자격증 | SQL 기본 및 활용 :: 매운코딩
728x90
300x250

[과목2.SQL 기본 및 활용 3-9. 그룹 함수(Group Function)]

 

1.     그룹 함수?

(1)   그룹함수를 통해 소계/중계/합계/총합계를 구할 수 있다.

(2)   하나의 SQL로 테이블을 한번만 읽어서 빠르게 원하는 리포트 작성 가능

 

2.     그룹 함수의 종류

(1)   ROLLUP

-      Subtotal을 생성하기 위해 사용

-      그룹핑컬럼의 수가 N일때, N+1 LevelSubtotal이 생성된다.

-      계층구조이기에 순서가 바뀌면 수행 결과도 바뀌게 되므로 순서에도 주의

(2)   CUBE

-      다차원적인 소계를 계산

-      결합 가능한 모든 값에 대해 다차원 집계를 생성

-      그룹핑컬럼의 수가 N일 때, 2NSubtotal이 생성

-      시스템의 성능에 무리를 많이 준다.

(3)   GROUPING SETS

 

3.     ROLLUP 함수

(1)   GROUP BY 뒤에 사용 (ex. ROLLUP(표현식1, 표현식2…)

(2)   전체 집계(Grand Total), 표현식 별 집계(Sub Total)

(3)   Subtotal의 경우 계층구조이기 때문에 표현식이 여러 개일 경우에는,
가장 처음나온것부터 차례로 보여준다.
ex) ROLLUP(
부서,업무,성별) 일 경우.. = 3개의 컬럼 = 3+1 = 4개의 결과값
-
부서별 업무별 성별별 집계
-
부서별 업무별 집계 (모든 성별 포함)
-
부서별 집계 (모든 성별, 모든 업무 포함)
-
전체 집계 (Grand Total)
이렇게 4가지가 나온다.

 

4.     GROUPING 함수

(1)   ROLLUP이나 CUBE에 의한 소계가 계산된 결과에는 그룹핑 함수 적용시 1이 표시된다. 그 외는 0

 

5.     CUBE 함수

(1)   결합 가능한 모든 값에 대해 다차원 집계를 생성한다.

(2)   ROLLUP은 가능한 Subtotal과는 다르게 전체를 경우를 구한다.
ex) CUBE(
부서,성별) 일 경우.. = 2개의 컬럼 = 2^2 = 4개의 결과값
-
부서별 성별별 집계
-
부서별 집계 (모든 성별 포함)
-
성별별 집계 (모든 부서 포함)
-
전체 집계 (Grand Total)
이렇게 4가지의 결과가 나온다.

 

만약, 컬럼이 3가지였을 경우.. CUBE(부서,성별,업무) 3개 컬럼 = 232^2^2 = 8개 결과

-      성별별 업무별 집계

-      부서별 업무별 집계

-      부서별 성별별 업무별 집계

-      부서별 성별별 집계

-      부서별 집계

-      성별별 집계

-      업무별 집계

-      전체 집계

 

6.     GROUPING SETS 함수

(1)   UNION ALL을 사용한 SQL과 같은 결과를 얻을 수 있다.

(2)   괄호를 묶은 집합 별로 집계를 구할 수 있다.

(3)   예시) GROUPING SETS(표현식1,표현식2…)

728x90

+ Recent posts