WINDOW 함수
WINDOW 함수는 AVG, COUNT, SUM, MAX, MIN만 사용 가능
윈도우 함수( ) OVER (
PARTITION BY 절 PARTITION BY 절에 명시된 그룹을 좀 더 세부적으로 그룹핑 가능
ORDER BY 절 [ASC|DESC]
ROWS | RANGE
BETWEEN UNBOUNDED PRECEDING | n PRECEDING | CURRENT ROW
AND UNBOUNDED FOLLOWING | n FOLLOWING | CURRENT ROW
OVER - 쿼리 RESULT SET을 이용해 동작하는 함수라는 구분
PARTITION BY - RESULT SET을 VALUE EXPRESS 에 지정된 값에 근거하여 분활하는 역할 수행
( ) - 안에 기술된 ORDER BY는 RESULT SET에 순위를 부여할 때 정렬기준을 표시하는 부분
ORDER BY – 각 PARTITION 내에서 DATA 각 어떤 값을 기준으로 정렬될 것인가를 지정
[NULLIS FIRST | NULLS LAST] - NULL이 포함된 ROW가 순서상 제일 앞이나 제일 뒤에 위치할 것인지 지정
ROWS | RANGE - 자료의 물리적 순서를 이용(ROWS)할 것인지 논리적 순서(RANGE)를 이용할 것인지 결정
BETWEEN ~ AND ~ - 자료의 범위를 결정한다.
- UNBOUNDED PRECEDING PARTITION의 첫 번째 로우에서 윈도우가 시작한다.
- UNBOUNDED FOLLOWING PARTITION의 마지막 로우에서 윈도우가 시작한다
- CURRENT ROW 현재 ROW를 시작 값
- ROWS 1 PRECEDING 1행 이전 행을 말한다
- ROWS 2 FOLLOWING 2행 이후 행을 말한다
- RANGE는 INTERVAL을 꼭 붙여서 숫자 ‘ ’ 안에 표시해야 한다
- RANGE INTERVAL ‘2’ DAY PRECEDING 3일 이동 합계
윈도우함수의 종류
FIRST_VALUE() - 윈도우 함수의 정렬이 끝이나고 제일 앞에 위치하는 ROW의 값들을 읽어올 때 사용.
LAST_VALUE() - 윈도우 함수의 정렬이 끝이나고 제일 뒤에 위치하는 ROW의 값들을 읽어올 때 사용.
RATIO_TO_REPORT - 함수가 전체대비 해당 ROW의 값이 차지하는 비율을 구해주고 있다.
LAG(컬럼, 원하는 행) - 해당 행의 앞에 몇 번째 행을 참조할 것인지 지정 가능
LEAD(컬럼, 원하는 행) - 해당 행의 뒤에 몇 번째 행을 참조할 것인지 지정 가능
'IT_Web > Oracle' 카테고리의 다른 글
Oracle ROWNUM, 집계함수, DECODE, OUTER JOIN 연습문제 (0) | 2020.02.27 |
---|---|
Oracle DECODE 활용법 (3) | 2020.02.27 |
Oracle 분석함수 활용법 (0) | 2020.02.27 |
Oracle 시퀀스, DDL 및 서브쿼리 활용문제 (0) | 2020.02.27 |
Oracle 테이블 생성 및 제약조건 (0) | 2020.02.26 |