WINDOW FUNCTION 종류
WINDOW FUNCTON의 종류는 크게 다섯 개의 그룹으로 분류할 수 있다. (벤더별로 지원하는 함수에는 차이가 있음)
- 그룹 내 순위(RANK) 관련 함수는 RANK, DENSE_RANK, ROW_NUMBER 함수가 있음.
- 그룹 내 집계(AGGREGATE) 관련 함수는 일반적으로 많이 사용하는 SUM, MAX, MIN, AVG, COUNT 함수가 음.
- 그룹 내 행 순서 관련 함수 FIRST_VALUE, LAST_VALUE, LAG, LEAD 함수가 있음
ORACLE에서만 지원되는 함수이기는 하지만, FIRST_VALUE, LAST_VALUE 수는 MAX, MIN함수와 비슷한 결과를 얻을 수 있고, LAG, LEAD 함수는 DW에서 유용하게 사용되는 기능 - 그룹 내 비율 관련 함수는 CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT 함수가 있음.
CUME_DIST, PERCENT_RANK 함수는 ANSI/ISO 표준과 ORACLE DBMS에서 지원하고 있으며, NTILE 함수는 ANSI/ISO SQL 표준에는 없지만, ORACLE, SQL SERVER에서 지원하고 있다.
RATIO_TO_REPORT 함수는 ORACLE에서만 지원하는 함수이다. - 선형 분석을 포함한 통계 분석 관련 함수가 있다.
CORR, COVAR_POP, COVAR_SAMP, STDDEV, STDDEV_POP, STDDEV_SAMP, VARIANCE, VAR_POP, VAR_SAMP, REGR_(LINEAR REGRESSION), REGR_SLOPE, REGR_INTERCEPT, REGR_COUNT, REGR_R2, REGR_AVGX, REGR_AVGY, REGR_SXX, REGR_SYY, REGR_SXY
WINDOW FUNCTION SYNTAX
- WINDOW 함수에는 OVER 문구가 키워드로 필수 포함됨.
SELECT WINDOW_FUNCTION (ARGUMENTS)
OVER ( [PARTITION BY 컬럼] [ORDER BY 절] [WINDOWING 절] )
FROM 테이블 명
- WINDOW_FUNCTION : 기존에 사용하던 함수도 있고, 새롭게 WINDOW 함수용으로 추가된 함수도 있음.
- ARGUMENTS(인수) : 함수에 따라 0 ~ N개의 인수가 지정될 수 있음.
- PARTITION BY 절 : 전체 집합을 기준에 의해 소그룹으로 나눌 수 있음.
- ORDER BY 절 : 어떤 항목에 대해 순위를 기정할 지 ORDER BY 절을 기술
- WINDOWING 절 : 함수의 대상이 되는 행 기준의 범위를 강력하게 지정할 수 있음. ROWS는 물리적인 결과 행의 수를, RANGE는 논리적인 값에 의한 범위를 나타내는데, 둘 중의 하나를 선택해서 사용할 수 있다. 다만, WINDOWING 절은 SQL SERVER에서 지원하지 않음.
WINDOW 절
ROWS | RANGE BETWEEN
UNBOUNDED PRECEDING | CURRUNT RPW | VALUE_EXPR PRECEDING/FOLLOWING
AND
UNBOUNDED FOLLOWING | CURRENT ROW | VALUE_EXPR PRECEDING/FOLLOWING
- ROWS : 물리적인 ROW 단위로 행 집합을 지정 ( 현재행을 기준으로 몇개의 행을 포함하는지 )
- RANGE : 논리적인 상대번지로 행 집합을 지정 ( 현재행을 기준으로 어떤 값의 범위를 포함하는지 )
- BETWEEN ~ AND 절 : 윈도우의 시작과 끝 위치를 지정
- UNBOUNDED PRECEDING : PARTITION의 첫 번째 로우에서 윈도우가 시작
- UNBOUNDED FOLLOWING : PARTITION의 마지막 로우에서 윈도우가 시작
- CURRENT ROW : 윈도우의 시작이나 끝 위치가 현재 로우
'SQLD > SQL 기본 및 활용' 카테고리의 다른 글
윈도우 함수(WINDOW FUNCTION) 5 - 그룹 내 비율 함수 (1) | 2019.07.04 |
---|---|
윈도우 함수(WINDOW FUNCTION) 4 - 그룹 내 행 순서 함수 (0) | 2019.07.04 |
윈도우 함수(WINDOW FUNCTION) 3 - 일반 집계 함수 (0) | 2019.07.04 |
윈도우 함수(WINDOW FUNCTION) 2 - 그룹 내 순위 함수 (0) | 2019.07.04 |