1. 분석함수
– 특정 집합 내에서 결과 건수의 변화없이 해당 집합 안에서 합계 및 카운트 등을 계산 할 수 있는 함수이다.
1) 문법
select C1 , 분석함수(C2, C3, …) over(PARTITION BY C4 ORDER BY C5) from TABLE_NAME ; |
– 사용하고자 하는 분석 함수를 쓰고 대상 컬럼을 기재 후 PARTITION BY에서 구하는 기준 컬럼을 쓰고 ORDER BY에서 정렬 컬럼을 기재한다.
2) 특정 컬럼의 순위 구하는 함수
– ROW_NUMBER() : 같은 순위가 있어도 무조건 순차적으로 순위를 매긴다. (1, 2, 3, 4, 5, …)
– RANK() : 같은 순위가 있으면 동일 순위로 매기고 그 다음 순위로 건너뛴다. (1, 1, 3, 4, …)
– DENSE_RANK() : 같은 순위가 있으면 동일 순위로 매기고 그 다음 순위를 건너 뛰지 않는다. (1, 1, 2, 3, …)
4) 특정 컬럼의 첫번째 값 혹은 마지막 값을 구하는 함수
– FIRST_VALUE()
– LAST_VALUE()
– RANGE BETWEEN UNBOUNDED PRECEDING (첫번째 로우부터) AND UNBOUNDED FOLLOWING (파티션의 마지막 로우까지) 추가한다. |
– DEFAULT
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW |
5) 특정 컬럼의 이전(PREV) 행의 값 혹은 다음(NEXT) 행의 값을 구하는 함수
– LAG() : 이전 행의 값을 찾는다.
– LEAD() : 다음 행의 값을 찾는다.