1. 윈도우 함수
순위, 집계 등 행과 행 사이의 관계를 정의하는 함수 OVER 구문을 필수로 한다.
SELECT 윈도우 함수(ARGUMENTS)
OVER([PARTITION BY 칼럼][ORDER BY 절][WINDOWING 절])
FROM 테이블 명
의 구조를 가진다.
순위함수
RANK() OVER([PARTITION BY 칼럼][ORDER BY 칼럼]
[WINDOWING 절])
- RANK : 동일한 값에는 동일한 순위를 부여한다.
- DENSE_RANK : RANK 와 같이 같은 값에는 같은 순위를 부여하나 한 건으로 취급한다.
- ROW_NUMBER : 동일한 값이라도 고유한 순위를 부여한다.
일반 집계 함수
SELECT STUDENT_ID, NAME,
AVG(SCORE) OVER(PARTITION BY STUDENT_ID) AS AVG
FROM MIDDLE
- SUM, AVG, MAX, MIN 등을 GROUP BY 구문 없이 사용 할 수 있다.
그룹 내 행 순서 함수
- FIRST_VALUE : 가장 먼저 나온 값을 구한다.
- LAST_VALUE : 가장 나중에 나온 값을 구한다.
- LAG : 이전 X 번째 행을 가져온다.
- LEAD : 이후 X 번째 행을 가져온다.
그룹 내 비율 함수
- RATIO_TO_REPORT : 파티션 내 전체 합에 대한 비율을 구한다.
- PERCENT_RANK : 파티션 내 순위를 백분율로 구한다.
- CUME_DIST : 파티션 내 현재 행보다 작거나 같은 건들의 수를 누적 백분율로 구한다.
- NTILE : 파티션 내 행들을 N등분한 결과를 구한다.