윈도우 함수
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
1. 순위 함수
함수명 | 설명 |
RANK | 순위를 매기면서 같은 순위가 존재하면 존재하는 수만큼 다음 순위를 건너뛴다. 예) 1, 2, 2, 4, 5, 5, 7 |
DENSE_RANK | 순위를 매기면서 같은 순위가 존재하더라도 다음 순위를 건너뛰지 않고 이어서 매긴다. 예) 1, 2, 2, 3, 4, 4, 5 |
ROW_NUMBER | 순위를 매기면서 동일한 값이라도 각기 다른 순위를 부여한다. 예) 1, 2, 3, 4, 5, 6, 7 |
2. 집계 함수
함수명 | 설명 |
SUM | 데이터의 합계를 구하는 함수. 인자값으로는 숫자형만 올 수 있다. |
MAX | 데이터의 최댓값을 구하는 함수 |
MIN | 데이터의 최솟값을 구하는 함수 |
AVG | 데이터의 평균값을 구하는 함수 |
COUNT | 데이터의 건수를 구하는 함수 |
3. 행 순서 함수
함수명 | 설명 |
FIRST_VALUE | 파티션 별 가장 선두에 위치한 데이터를 구하는 함수 |
LAST_VALUE | 파티션 별 가장 끝에 위치한 데이터를 구하는 함수 |
LAG | 파티션 별로 특정 수만큼 앞선 데이터를 구하는 함수 |
LEAD | 파티션 별로 특정 수만큼 뒤에 있는 데이터를 구하는 함수 |
4. 비율 함수
함수명 | 설명 |
RATIO_TO_REPORT | 파티션 별 합계에서 차지하는 비율을 구하는 함수 |
PERCENT_RANK | 해당 파티션의 맨 위 끝 행을 0, 맨 아래 끝 행을 1로 놓고 현재 행이 위치하는 백분위 순위 값을 구하는 함수 |
CUME_DIST | 해당 파티션에서의 누적 백분율을 구하는 함수 |
NTILE | 주어진 수만큼 행들을 n등분한 후 현재 행에 해당하는 등급을 구하는 함수 |
'[개발 언어 & 프레임워크] > SQL' 카테고리의 다른 글
[SQL] 그룹 함수 정리 (1) | 2023.01.17 |
---|---|
[SQL] 집합 연산자 - UNION ALL, UNION, INTERSECT, EXCEPT (0) | 2023.01.17 |
[SQL] 서브쿼리(Subquery) 정리 (0) | 2023.01.16 |
[SQL] JOIN 정리 (0) | 2023.01.16 |
[SQL] GROUP BY, HAVING 절 (0) | 2023.01.16 |