1. ROLLUP
-
ROLLUP은 GROUP BY의 칼럼에 대해서 Subtotal을 만들어줌
-
GROUP BY구에 칼럼이 두 개 이상 오면 순서에 따라서 결과가 달라짐
2. GROUPING 함수
-
GROUPING 함수는 ROLLUP, CUBE, GROUPING SETS에서 생성되는 합계값을 구분하기 위해서 만들어진 함수
-
소계, 합계 등이 계산되면 GROUPING함수는 1을 반환하고 그렇지 않으면 0을 반환해서 합계값을 식별함
3. GROUPING SETS 함수
-
GROUPING SETS 함수는 GROUP BY에 나오는 칼럼의 순서와 관계없이 다양한 소계를 만들 수 있음
-
GROUP BY에 나오는 칼럼의 순서와 관계없이 개별적으로 모두 처리함(서로 관계가 없음)
4. CUBE 함수
-
CUBE는 CUBE 함수에 제시한 칼럼에 대해서 결합 가능한 모든 집계를 계산함
-
다차원 집계를 제공해 다양하게 데이터를 분석할 수 있음
-
조합할 수 있는 모든 경우의 수가 조합 됨
1. 윈도우 함수
-
윈도우 함수는 행과 행 간의 관계를 정의하기 위해서 제공되는 함수임
-
윈도우 함수를 사용해서 순위, 합계, 평균, 행 위치 등을 조작할 수 있음
-
ARGUMENTS(인수): 윈도우 함수에 따라서 0~N개의 인수를 설정함
-
PARTITION BY: 전체 집합을 기준에 의해 소그룹으로 나눔
-
ORDER BY: 어떤 항목에 대해서 정렬함
-
WINDOWING: 행 기준의 범위를 정함
*WINDOWING
-
ROWS: 부분집합인 윈도우 크기를 물리적 단위로 행의 집합을 지정함
-
RANGE: 논리적인 주소에 의해 행 집합을 지정함
-
BETWEEN~AND: 윈도우의 시작과 끝의 위치를 지정함
-
UNBOUNDED PRECEDING: 윈도우의 시작 위치가 첫 번째 행임을 의미함
-
UNBOUNDED FOLLOWING: 윈도우 마지막 위치가 마지막 행임을 의미함
-
CURRENT ROW: 윈도우 시작 위치가 현재 행임을 의미함
2. 순위 함수(RANK Function)
-
윈도우 함수는 특정 항목과 파티션에 대해서 순위를 계산할 수 있는 함수를 제공함
-
RANK: 특정항목 및 파티션에 대해서 순위를 계산함(동일한 순위는 동일한 값이 부여됨)
-
DENSE_RANK: 동일한 순위를 하나의 건수로 계산함
-
ROW_NUMBER: 동일한 순위에 대해서 고유의 순위를 부여함
3. 집계 함수
-
SUM: 파티션 별로 합계를 계산함
-
AVG: 파티션 별로 평균을 계산함
-
COUNT: 파티션 별로 행 수를 계산함
-
MAX와 MIN: 파티션 별로 최댓값과 최솟값을 계산함
4. 행 순서 관련 함수
-
FIRST_VALUE: 파티션에서 가장 처음에 나오는 값을 구함(MIN 함수를 사용해서 같은 결과를 구할 수 있음)
-
LAST_VALUE: 파티션에서 가장 나중에 나오는 값을 구함(MAX와 같은 결과를 구할 수 있음)
-
LAG: 이전 행을 가지고 옴
-
LEAD: 윈도우에서 특정 위치의 행을 가지고 옴(기본값은 1임)
5. 비율 관련 함수
-
비율 관련 함수는 누적 백분율, 순서별 백분율, 파티션을 N분으로 분할한 결과 등을 조회할 수 있음
-
CUME_DIST: 파티션 전체 건수에서 현재 행보다 작거나 같은 건수에 대한 누적 백분율을 조회함(누적 분포상에 위치를 0~1사이의 값을 가짐)
-
PERCENT_RANK: 파티션에서 제일 먼저 나온 것을 0으로 제일 늦게 나온 것을 1로 하여 값이 아닌 행의 순서별 백분율을 조회함
-
NTILE: 파티션별로 전체 건수를 ARGUMENT 값으로 N등분한 결과를 조회함
-
RATIO_TO_REPORT: 파티션 내에 전체 SUM(칼럼)에 대한 행 별 칼럼값의 백분율을 소수점까지 조회함
'SQL 공부' 카테고리의 다른 글
(SQLD)옵티마이저 종류/인덱스(Index)/실행 계획(Execution Plan)/옵티마이저 조인(Optimizer Join) (0) | 2020.09.11 |
---|---|
(SQLD)테이블 파티션(Table Partition)/옵티마이저(Optimizer)와 실행 계획 (0) | 2020.09.09 |
(SQLD)계층형 조회(Connect by)/서브쿼리(Subquery) (0) | 2020.09.05 |
(SQLD)조인(Join) (0) | 2020.09.03 |
(SQLD)TCL(Transaction Control Language) (0) | 2020.09.01 |