[Oracle] Lead 와 Lag 편 이 량 함수 사용 상세 설명
Oracle 공식 문서 설명 은:
LEAD
is an analytic function. It provides access to more than one row of a table at the same time without a self join. Given a series of rows returned from a query and a position of the cursor, LEAD
provides access to a row at a given physical offset beyond that position. LEAD 함 수 는 분석 함수 로 연결 되 지 않 은 상태 에서 표 의 여러 줄 데 이 터 를 동시에 방문 할 수 있 습 니 다.돌아 오 는 일련의 데이터 줄 과 커서 를 조회 합 니 다. LEAD 함 수 는 현재 위치 에서 오프셋 에 따라 이 표 의 다른 줄 데 이 터 를 방문 합 니 다.
우 리 는 조회 의 예 시 를 결합 하여 이 함수 의 구체 적 인 용법 을 보 았 다.
1. lead 함 수 는 먼저 DEPTNO 부서 에 따라 그룹 을 나 누고 HIREDATE 에 따라 정렬 합 니 다. NEXTHIREDATE 는 HIREDATE 의 다음 오프셋 (오프셋 기본 값 은 1) 을 표시 합 니 다.
예 를 들 어 ALLEN 의 HIREDATE 가 '1981 - 2 - 20' 이면 ALLEN 의 NEXTHIREDATE 의 값 은 바로 '1981 - 2 - 22' (즉, WARD 의 HIREDATE 값) 이다.
마찬가지 로 WARD 의 HIREDATE 값 은 "1981 - 2 - 22" 입 니 다. 그러면 WARD 의 NEXTHIREDATE 값 은 "1981 - 5 - 1" (즉 BLAKE 의 HIREDATE 값) 입 니 다.
마지막 으로 JAMES 에서 다음 편 이 량 을 찾 을 수 없어 서 NEXTHIREDATE 의 기본 값 은 NULL 입 니 다.
--1、lead
select e.ename,
e.deptno,
e.hiredate,
lead(e.hiredate,1,null) over(partition by e.deptno order by e.hiredate) as next_hiredate
from emp e
where e.deptno=30;
2、 partition by
--2、 partition by lead
SELECT e.ename,
e.deptno,
e.hiredate,
lead(e.hiredate) over(order by e.hiredate) as next_hiredate
FROM emp e;
3. Oracle 11g 은 LEAD 와 LAG 함 수 를 강화 하 는 문법 으로 {RESPECT
를 추가 했다. | IGNORE
} NULLS, LEAD , , 。
update emp e
set e.hiredate=NULL
where e.empno='7698';
commit;
select e.empno,
e.ename,
e.deptno,
e.hiredate,
lead(e.hiredate,1,NULL) over(partition by e.deptno order by e.empno) as next_hiredate
from emp e
where e.deptno=30;
7698-BLAKE HIREDATE , MARTIN NEXT_HIREDATE , RESPECT NULLS, IGNORE NULLS 。
select e.empno,
e.ename,
e.deptno,
e.hiredate,
lead(e.hiredate ignore nulls) over(partition by e.deptno order by e.empno) as next_hiredate
from emp e
where e.deptno=30;
IGNORE NULLS , NULL , 。
4、 N , 1, 。
--4、 offset, =1, 2
select e.empno,
e.ename,
e.deptno,
e.hiredate,
lead(e.hiredate,2,null) over(partition by e.deptno order by e.hiredate) as next_hiredate
from emp e
where deptno=30;
5、LEAD , DEFAULT NULL, , LEAD 。
--5、lead default
select e.empno,
e.ename,
e.deptno,
e.hiredate,
lead(e.hiredate,1,to_date('2013-01-01','yyyy-MM-dd')) over(partition by e.deptno order by e.hiredate) as next_hiredate
from emp e
where deptno=30;
LAG 분석 함수 의 용법 은 기본적으로 lEAD 함수 유형 과 같 습 니 다. 단지 역할 이 반대 일 뿐 입 니 다. 여러분 은 자신의 기계 에서 직접 실천 할 수 있 습 니 다. 더 자세 한 정 보 는 참고 하 시기 바 랍 니 다.http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions086.htm#SQLRF00656
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Oracle 생성 향후 3일간의 전체 시점 (단계 상세)수요: X 좌표축 시간은 모두 정시 시간으로 앞으로 3일 동안의 예측을 보여준다(x 축은 앞으로 3일 동안의 정시 시간을 보여준다), 3시간마다 한 눈금, 가로 좌표는 모두 24개의 눈금을 보여준다 1단계: 현재 시...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.