SQL

SQL 문법정리 : 원도우 함수(Window Function)

Nova 2021. 3. 1. 12:08

SQL 문법정리 : 원도우 함수(Window Function)

 

원도우 함수

. 원도우 함수는 행과 열 간의 관계를 정의하기 위해서 제공되는 함수이다. 

. 원도우 함수를 사용해서 순위, 합계, 평균, 행 위치 등을 조작할 수 있다.

 

SELECT WINDOW_FUNCTION(ARGUMENTS)

        OVER (PARTITION BY 칼럼

                ORDER BY WINDOWING절)

 

▣ 원도우 함수 구조

구조 설명
ARGUMENTS(인수) 원도우 함수에 따라서 0~N개의 인수를 설정한다
PARTITION BY 전체 집합을 기준에 의해 소그룹으로 나눈다
ORDER BY 어떤 항목에 대해서 정렬한다
WINDOWING - 행 기준의 범위를 정한다
- ROWS는 물리적 결과의 행 수이고 RANGE는 논리적인 값에 의한 범위이다

 

▣ WINDOWING

구조 설명
ROWS 부분집합인 원도우 크기를 물리적 단위로 행의 집합을 지정한다
RANAGE 논리적인 주소에 의해 행 집합을 지정한다
BETWEEN ~ AND 원도우의 시작과 끝의 위치를 지정한다
UNBOUNDED PRECEDING 원도우의 시작 위치가 첫 번째 행임을 의미한다
UNBOUNDED FOLLOWING 윈도우 마지막 위치가 마지막 행임을 의미한다
CURRENT ROW 윈도우 시작 위치가 현재 행임을 의미한다

 

 

▣ 순위 함수(RANK Function)

순위함수 설명
RANK - 특정항목 및 파티션에 대해서 순위를 계산한다
- 동일한 순위는 동일한 값이 부여된다
DENSE_RANK 동일한 순위를 하나의 건수로 계산한다
ROW_NUMBER 동일한 순위에 대해서 고유의 순위를 부여한다

 

 

▣ 집계 함수(AGGREGATE Function)

집계 함수 설명
SUM 파티션 별로 합계를 계산한다
AVG 파티션 별로 평균을 계산한다
COUNT 파티션 별로 행 수를 계산한다
MAX와 MIN 파티션 별로 최댓값과 최소값을 계산한다

 

 

▣ 행 순서 관련 함수

행 순서 설명
FIRST_VALUE - 파티션에서 가장 처음에 나오는 값을 구한다
- MIN 함수를 사용해서 같은 결과를 구할 수 있다
LAST_VALUE - 파티션에서 가장 나중에 나오는 값을 구한다
- MAX 함수를 사용해서 같은 결과를 구할 수 있다
LAG 이전 행을 가지고 온다
LEAD - 원도우에서 특정 위치의 행을 가지고 온다
- 기본값은 1이다

 

▣ 비율 관련함수

비율 함수 설명
CUME_DIST - 파티션 전체 건수에서 현재 행보다 작거나 같은 건수에 대한 누적 백분율을 조회한다
- 누적 분포상에 위치를 0~1사이의 값을 가진다
PERCENT_RANK 파티션에서 제일 먼저 나온 것을 0으로 제일 늦게 나온 것을 1로 하여 값이 아닌 행의 순서별 백분율을 조회한다
NTILE 파티션별로 전체 건수를 ARGUMENT 값으로 N 등분한 결과를 조회한다
RATIO_TO_REPORT 파티션 내에 전체 SUM(칼럼)에 대한 행 별 칼럼값의 백분율을 소수점까지 조회한다