나의 분석일기 ♬

[SQL] lead()/lag() 함수 본문

Tools/SQL

[SQL] lead()/lag() 함수

Screening Jang 2023. 3. 21. 17:52

lead() / lag() 함수

●  lag() : 현재 행보다 이전 행의 값을 가져옴
       ※ order by는 오름차순으로 고정하는 것이 좋음.
●  lead() : 현재 행보다 다음 행의 값을 가져옴

 

함수 형태

lag / lead (expr [,offset] [,default])
○ expr : 적용할 컬럼명 
offset : 값을 가져올 행의 위치 offset값. 기본값은 1
 default : 행의 위치 offset값으로 Null값일 때 대체할 값. 기본값은 Null
      ※ default 값을 설정하는 경우 offset값이 기본 1이더라도 반드시 값을 1로 명시해줘야함

 

partition by는 생략 가능하지만, order by는 반드시 필요함. window절은 사용되지 않음

 

(ex) 

lag() 함수를 통해 생성된 prev_ename 컬럼을 보면 ename 컬럼에서 본인 이전의 행 값을 가져와 출력하는 것을 알 수 있음.  이전의 행 값이 없는 경우 NULL

lead() 함수를 통해 생성된 next_ename 컬럼을 보면 ename 컬럼에서 본인 다음의 행 값을 가져와 출력하는 것을 알 수 있음.  다음의 행 값이 없는 경우 NULL

 

(ex) NULL값 대체방법(함수 내 파라미터 사용/COALESCE()함수 사용)

 

'Tools > SQL' 카테고리의 다른 글

[SQL] 순위 함수 - cume_dist, percent_rank, ntile  (0) 2023.03.21
[SQL] first_value() / last_value() 함수  (0) 2023.03.21
[SQL] JOIN(조인)  (0) 2023.03.18
[SQL] SQL 기본 문법  (0) 2023.03.18
[SQL] 공부 시작  (0) 2023.03.18
Comments