써치킴의 우당탕탕 개발 블로그

[그룹 내 행 순서 함수] LEAD 본문

PostgreSQL

[그룹 내 행 순서 함수] LEAD

써치킴 2024. 6. 19. 11:38

LEAD 함수

LEAD 함수를 이용해 파티션별 윈도우에서 이후 몇 번째 행의 값을 가져올 수 있다.

LEAD 함수는 3개의 ARGUMENTS 까지 사용할 수 있는데,

첫 번째 인자인 컬럼을 기준으로

두 번째 인자는 몇 번째 후의 행을 가져올지 결정하는 것이고 (DEFAULT : 1),
세 번째 인자는 예를 들어 파티션의 마지막 행의 경우 가져올 데이터가 없어 NULL 값이 들어오는데
이 경우 다른 값으로 바꾸어 줄 수 있다. 결과적으로 NVL이나 ISNULL 기능과 같다.

 

함수 의미
LAG(□,m,n) OVER(ORDER BY ■) - 컬럼■를 기준으로 레코드를 정렬한 뒤
- 컬럼□의 값을 기준으로,
- 정렬된 레코드 중 직전 m번째 레코드 값 출력
- 출력할 값이 없으면(컬럼■ 기준 정렬 시 첫번째 행) n 출력
LEAD(□,m,n) OVER(ORDER BY ■) - 컬럼■를 기준으로 레코드를 정렬한 뒤
- 컬럼□의 값을 기준으로,
- 정렬된 레코드 중 직후 m번째 레코드 값 출력
- 출력할 값이 없으면(컬럼■ 기준 정렬 시 마지막 행) n 출력

예시)

SELECT ENAME, HIREDATE
     , LEAD(HIREDATE, 1) OVER (ORDER BY HIREDATE) as "NEXTHIRED" 
  FROM EMP;

ENAME      HIREDATE  NEXTHIRED
---------- --------- ---------
SMITH      17-DEC-80 20-FEB-81
ALLEN      20-FEB-81 22-FEB-81
WARD       22-FEB-81 02-APR-81
JONES      02-APR-81 01-MAY-81
BLAKE      01-MAY-81 09-JUN-81
CLARK      09-JUN-81 08-SEP-81
TURNER     08-SEP-81 28-SEP-81
MARTIN     28-SEP-81 17-NOV-81
KING       17-NOV-81 03-DEC-81
JAMES      03-DEC-81 03-DEC-81
FORD       03-DEC-81 23-JAN-82
MILLER     23-JAN-82 09-DEC-82
SCOTT      09-DEC-82 12-JAN-83
ADAMS      12-JAN-83

 

 

참고

https://m.blog.naver.com/regenesis90/222192641844

'PostgreSQL' 카테고리의 다른 글

[문자열 관련 함수] Position  (0) 2024.07.05
[그룹 내 행 순서 함수] LAG  (0) 2024.06.25
[날짜/시간 관련] date_trunc 함수  (0) 2024.06.18
Comments