OVER 키워드와 함께 사용되며 역할에 따라 다음과 같이 나뉨

- 순위 함수 : RANK, DENSE_RANK, ROW_NUMBER

- 집계 함수 : SUM, MAX, MIN, AVG, COUNT

- 행 순서 함수 : FIRST_VALUE, LAST_VALUE, LAG, LEAD

- 비율 함수 : CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT

 

순위함수

- RANK : 순위를 매기면서 같은 순위가 존재하면 존재하는 수만큼 다음 순위를 건너뛴다

- DENSE_RANK : 순위를 매기면서 같은 순위가 존재하더라도 다음 순위를 건너뛰지 않고 이어서 매긴다

- ROW_NUMBER : 순위를 매기면서 동일한 값이라도 각기 다른 순위를 부여한다

 

집계함수

- SUM

- MAX

- MIN

- AVG

- COUNT

 

윈도우 함수 사용 옵션

; WINDOWING 절을 이용하여 집계하려는 데이터의 범위를 지정할 수 있음

 

범위

- UNBOUNDED PRECENDING : 위쪽 끝 행

- UNBOUNDED FOLLOWING : 아래쪽 끝 행

- CURRENT ROW : 현재 행

- n PRECENDING : 현재 행에서 위로 n만큼 이동

- n FOLLOWING : 현재 행에서 아래로 n만큼 이동

 

기준

- ROWS : 행 자체가 기준이 된다

- RANGE : 행이 가지고 있는 데이터 값이 기준이 된다

 

ex)

- RANGE BETWEEN UNBOUNDED PRECENDING AND CURRENT ROW : 처음부터 현재 행까지

- RANGE BETWEEN 10 PRECENDING AND CURRENT ROW : 현재 행이 가지고 있는 값보다 10만큼 적은 행부터 현재 행까지

- ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING : 현재 행부터 끝까지

- ROWS BETWEEN CURRENT ROW AND 5 FOLLOWING : 현재 행부터 아래로 5만큼 이동한 행까지

 

 

행 순서 함수

- FIRST_VALUE : 파티션 별 가장 선두에 위치한 데이터

- LAST_VALUE : 파티션 별 가장 끝에 위치한 데이터

- LAG : 파티션 별로 특정 수만큼 앞선 데이터

- LEAD : 파티션 별로 특정 수만큼 뒤에 있는 데이터

 

비율 함수

- RATIO_TO_REPORT : 파티션 별 합계에서 차지하는 비율

- PERCENT_RANK : 해당 파티션의 맨 위 끝 행을 0, 맨 아래 끝 행을 1로 놓고 현재 행이 위치하는 백분위 순위 값

; (RANK - 1) / (COUNT -1) 값과 같음

- CUME_DIST : 해당 파티션에서 누적 백분율을 구하는 함수

- NTILE : 주어진 수만큼 행들을 n등분한 후 현재 행에 해당하는 등급을 구하는 함수

; 할당할 행이 남았을 경우 맨 앞의 그룹부터 하나씩 더 채워진다

 

 

 

'SQLD > SQL 기본 및 활용' 카테고리의 다른 글

계층 쿼리  (0) 2023.03.14
Top - N 쿼리, 셀프 조인 Self Join  (0) 2023.03.14
집합 연산자, 그룹 함수  (0) 2023.03.14
뷰 View  (0) 2023.03.14
서브쿼리 Subquery  (0) 2023.03.14

+ Recent posts