1.     ROLLUP

  • ROLLUPGROUP 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 함수

  • CUBECUBE 함수에 제시한 칼럼에 대해서 결합 가능한 모든 집계를 계산함

  • 다차원 집계를 제공해 다양하게 데이터를 분석할 수 있음

  • 조합할 수 있는 모든 경우의 수가 조합 됨

 

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: 파티션 별로 행 수를 계산함

  • MAXMIN: 파티션 별로 최댓값과 최솟값을 계산함

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(칼럼)에 대한 행 별 칼럼값의 백분율을 소수점까지 조회함

+ Recent posts