나의 분석일기 ♬
[SQL] lead()/lag() 함수 본문
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