Oracle - LAG(), LEAD() 함수 사용
Posted 06 1, 2010 11:49, Filed under: DataBase/OraclePURPOSE
SCOPE & APPLICATION
KEY IDEA
ANALYTIC
FUNCTION,PARTITION, WINDOW, CURRENT ROW, Lag, Lead, RATIO
SUPPOSITION
VERSION : ORACLE
8.1.6 이상
DESCRIPTION
기존 RDBMS에서는
다른 시간대에 있는 값들을 참조하기 위한 포인터를 가지고 있지 않다. 이것은 집합에서 모든 요소가 동등한 자격과 위치를 가지며
서로를 참조하기 위한 포인터를 가지고 있지 않기 때문이다.
Analytic
Function의 Lag와 Lead는 다른 시간대에 있는 값들을 비교하기 위한 포인터를 제공하기 때문에 이러한 연산을 수행할 경우
아주 유리하다.
{LAG |
LEAD}
(<value expression1>, [<offset> [,
<default>]]) OVER
([PARTITION BY <value expression2>[,...]]
ORDER BY <value
expression3> [collate clause>]
[ASC | DESC] [NULLS FIRST | NULLS
LAST] [,...])
<offset> 은
옵션이며 지정하지 않으면 1 이 default로 사용된다.
다음 SQL은
Lag와 Lead Function을 사용하여 자신이 소속한 부서에서 자기보다 월급이 많은 사원의 급여와 자기보다 월급이 적은
사원의 급여를 참조하기 위한 것이다.
lag(sal,1) over (order by deptno,sal) as sal_lag,
lead(sal,1) over (order by deptno,sal) as sal_lead
from emp
[출처] Oracle Analytic Function LAG/LEAD|작성자 미스터피
## LAG(), LEAD() 함수 사용시
필수입력 : OVER(ORDER BY )
-- LAG(A, B, C) A:대상로우, B:가져올위치(대상로우 이전값, default:1),
C:기본으로 채울값(default: NULL값)
-- LEAD(A, B, C) A:대상로우, B:가져올위치(대상로우 다음값, default:1),
C:기본으로 채울값(default: NULL값)
SQL> WITH T AS
(
SELECT 1 A FROM DUAL
UNION ALL
SELECT 2 FROM DUAL UNION ALL
SELECT 3 FROM DUAL
UNION ALL
SELECT 4 FROM DUAL UNION ALL
SELECT 5 FROM DUAL
)
SELECT
A,
LAG(A, 1, 123)
OVER(ORDER BY A) PREV_VALUE,
LEAD(A, 2, 123) OVER(ORDER BY A)
NEXT_VALUE
FROM T;
A PREV_VALUE NEXT_VALUE
-----------
----------- -----------
1 123 3
2 1 4
3 2
5
4
3 123
5 4 123
5 rows selected.
"DataBase / Oracle" 분류의 다른 글
| Oracle - 바인드 변수에 대하여(테스트) (0) | 2012/05/06 |
| Oracle - 디폴트 롤, DBA, CONNECT, RESOURCE (0) | 2012/04/27 |
| Oracle - 권한 및 롤 관리 (0) | 2012/04/27 |
| Oracle - SQL*PLUS의 SYSDBA 접근 제어 (0) | 2012/04/27 |
| Oracle - PFILE, SPFILE 에 관하여 (0) | 2012/04/27 |
| Oracle - Listener 포트 변경 (0) | 2012/04/27 |
| Oracle - 사용자 패스워드 정책 변경 (0) | 2012/04/03 |
| Oracle - SYS_CONTEXT 함수를 이용하여 접속 세션 정보 추출 (2) | 2011/12/13 |
| Oracle - ASSM(Automatic Segment Space Management) (0) | 2011/09/18 |
| Oracle - 사용자의 테이블 스페이스 검색및 이동 (0) | 2011/09/18 |
Trackback URL : http://develop.sunshiny.co.kr/trackback/485