행과 행간의 관계를 정의하거나 행과 행간을 비교, 연산하는 함수
SELECT 칼럼명, 칼럼명, .... ,
WINDOW_FUNCTION (ARGUMENTS)
OVER ([PARTITION BY 칼럼] [ORDER BY 절] [WINDOWING 절]) ALIAS
FROM 테이블명;
함수 | 의미 | 예시 |
---|---|---|
RANK | - 특정 항목(컬럼), 범위(파티션) / 전체 데이터에 대한 순위를 구하는 함수 - 동일한 값에 대해서는 동일한 순위 | 1, 2, 2, 4 |
DENSE_RANK | - RANK와 흡사하나, 동일한 순위를 하나의 건수로 취급 - 중간 순위를 건너뛰지 않음 | 1, 2, 2, 3 |
ROW_NUMBER | 동일한 값이라도 고유한 순위를 부여 | 1, 2, 3, 4 |
SQL Server에서는 불가
함수 | 의미 | 형태 |
---|---|---|
FIRST_VALUE 함수 | - 파티션별 윈도우의 최초로 나온 값 | |
LAST_VALUE 함수 | 파티션별 윈도우의 가장 마지막에 나온 값 | |
LAG 함수 | 파티션별 윈도우에서 이전 몇 번째 행의 값 | LAG (인수, 몇행 앞, 없는 경우 반환) |
LEAD | 파티션별 윈도우에서 이후 몇 번째 행의 값 | LEAD(인수, 몇행 뒤, 없을 경우 반환) |
SQL Server에서는 불가
함수 | 의미 | 결과 값 |
---|---|---|
RATIO_TO_REPORT | - 파티션 내 전체 SUM(칼럼) 값에 대한 행별 칼럼 값의 백분율을 소수점으로 반환 - 개별 RATIO 합을 구하면 1 | 0 < 결과 값 <= 1 |
PERCENT_RANK | - 파티션별 윈도우에서 제일 먼저 나오는 것 0, 제일 늦게 나오는 것을 1로 하여, 값이 아닌 행의 순서별 백분율 반환 - 같은 ORDER 순위 인정, 앞 행의 결과 값을 기준으로 삼음 | 0 <= 결과 값 <= 1 |
CUME_DIST | - 파티션별 윈도우의 전체 건수에서 현재 행보다 작거나 같은 건수에 대한 누적 백분율 - 같은 ORDER 순위 인정, 뒤 행의 결과 값을 기준으로 삼음 | 0 < 결과 값 <= 1 |
NTILE | - 파티션별 전체 건수를 ARGUMENT 값으로 N등분한 결과 - 나머지는 앞의 그룹부터 차례로 할당 |