All thing of the world!

Oracle/Postgresql 윈도우 함수(window function) 상세 옵션 설명 : Rows, Range, Unbounded, Preceding, Following 본문

IT

Oracle/Postgresql 윈도우 함수(window function) 상세 옵션 설명 : Rows, Range, Unbounded, Preceding, Following

WorldSeeker 2021. 4. 16. 11:00

 

 

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까지로 지정

 

Comments