Oracle/Postgresql 윈도우 함수(window function) 상세 옵션 설명 : Rows, Range, Unbounded, Preceding, Following
Windows 함수의 문법 중 PARTITION BY나 ORDER BY 뒤에 붙는 상세 옵션을 간단하고 쉽게 정리한다.
윈도우 함수는 거의 아래와 같은 문법을 가지고 있다.
■ 윈도우펑션명() OVER ( [PARTITION BY partition_expression] [ ORDER BY sort_expression [ASC | DESC] frame_clause ] )
이중 상세 옵션인 [frame_clause]절을 정리하면 다음과 같다.
● ROWS : row 데이터가 1,2,2,3 이라고 한다면 2는 동일한 것으로 간주하고, 두번째 2와 세번째는 2는 동일한 집계결과를 출력 (집계의 시작의 끝은 아래 Between and 사용)
● RANGE : row 데이터가 1,2,2,3 이라고 한다면 2는 동일하지 않은 것으로 간주하고, 두번째 2와 세번째는 2를 각각 집계하여 결과를 출력 (집계의 시작의 끝은 아래 Between and 사용)
●BETWEEN AND : 집계(window)의 시작과 끝 위치를 지정, 아래 옵션을 사용하여 처음과 끝을 지정 가능
-> [integer] PRECEDING : 집계의 시작위치를 integer에 지정한 숫자만큼 올라가서 시작
-> [integer] FOLLOWING : 집계의 마지막 위치를 integer에 지정한 숫자만큼까지로 지정
-> CURRENT ROW: 현재 집계하고 있는 ROW의 위치 까지로 지정
-> UNBOUNDED PRECEDING: 집계 시작 위치를 첫번째 row부터로 지정
-> UNBOUNDED FOLLOWING: 집계 마지막 위치를 마지막 row까지로 지정