함수 구분 |
함수 |
설명 |
비고 |
순위 |
RANK |
순위 |
1,2,2,4,5 |
DENSE_RANK |
동일 순위를 1건으로 |
1,2,2,3,4 |
|
ROW_NUMBER |
동일 순위 미 인정 |
1,2,3,4,5 |
|
집계 |
SUM, MAX, MIN, AVG, COUNT |
합계, 최대, 최소, 평균, 건수 |
|
행 순서 |
FIRST_VALUE, LAST_VALUE |
파티션 내 첫 번쨰, 최종 값 |
|
LAG, LEAD |
이전 레코드, 이후 레코드 값 |
|
|
비율 |
CUME_DIST |
파티션 내 데이터 값에 대한 누적 비율 |
결과 값 0~1 사이 |
PERCENT_RANK |
파티션 내의 row 개수에 대한 누적 비율 |
||
RATIO_TO_REPORT |
파티션 내의 비율 |
||
NTILE |
인자 값으로 전체 로우 개수를 나누고, 인자 값의 순서를 결정 |
ntile(4) over(order by sal) sal 컬럼 순으로 정렬후 전체 로우를 4등분 후 1~4 값 설정 |
- 윈도우 함수 사용법
1) BETWEEN 사용 시
ROWS |
BETWEEN |
UNBOUNDED PRECEDING (맨위) |
AND |
CURRENT ROW |
|
10 PRECEDING (10개전) |
UNBOUNDED FOLLOWING |
|
|||
RANGE |
|
||||
CURRENT ROW (지금) |
10 FOLLOWING |
|
2)BETWEEN 미 사용 -> 현재 행 기준으로!
ROWS |
UNBOUNDED PRECEDING |
|
10 PRECEDING |
|
|
CURRENT ROW |
|
|
RANGE |
|
|
UNBOUNDED FOLLOWING |
|
|
10 FOLLOWING |
|
ex) Select 일련번호, 측정값,
last_value(상태코드) over (partition by 부서 order by 상태코드 rows between
unbounded preceding and current row) 상태코드
from 장비측정 order by 부서, 일련번호;
'Oracle DB' 카테고리의 다른 글
서브쿼리 / 집합연산 / Join - Using , On, Outer Join (0) | 2021.04.03 |
---|---|
계층쿼리 / 선분이력 끊기 / 데이터 복제를 통한 소계 (0) | 2021.04.03 |
조인의 원리 및 활용 (0) | 2021.04.03 |
인덱스 구조 및 이해(2) (0) | 2021.04.03 |
인덱스 구조 및 종류의 이해(1) (0) | 2021.04.03 |