목차

Search

  1. 서문
  2. 변환 언어
  3. 상수
  4. 연산자
  5. 변수
  6. 날짜
  7. 함수
  8. 사용자 지정 함수 작성
  9. 사용자 지정 함수 API 참조

변환 언어 참조

변환 언어 참조

LAG

LAG

식 변환에서 현재 행 앞의 행에 대한 오프셋 수인 값을 반환합니다. Hadoop 환경의 Spark 엔진에서 매핑을 실행하는 경우 이 함수를 사용하여 현재 행의 값과 이전 행의 값을 비교할 수 있습니다.
데이터 집합에서 lag 값은 현재 행의 앞에 표시됩니다.
변환에서 LAG 함수를 사용하는 경우 창 작업을 사용하도록 변환을 구성해야 합니다. 창 작업 속성은 데이터의 분할 및 정렬 방법을 정의합니다.

구문

LAG (
column_name
,
offset
,
default
)
다음 테이블에는 이 명령의 인수가 설명되어 있습니다.
인수
필수/
선택 사항
설명
column_name
필수
함수가 작동하는 대상 열 또는 식입니다.
offset
필수
정수 데이터 유형. 값을 가져올 현재 행 앞의 행 수입니다.
default
선택 사항
오프셋이 파티션 또는 테이블의 범위 밖에 있는 경우 반환할 기본값입니다. 기본값은 NULL입니다.

반환 값

지정된
column_name
의 데이터 유형.
반환 값이 지정된 파티션의 범위 밖에 있는 경우
Default
.
default
가 생략되었거나 NULL로 설정된 경우 NULL.

다음 식은 이전 정렬이 배치된 날짜를 반환합니다.
LAG ( ORDER_DATE, 1, NULL )
ORDER_DATE
ORDER_ID
RETURN VALUE
2017/09/25
1
NULL
2017/09/26
2
2017/09/25
2017/09/27
3
2017/09/26
2017/09/28
4
2017/09/27
2017/09/29
5
2017/09/28
2017/09/30
6
2017/09/29
첫 번째 행의 lag 값이 파티션 밖에 있으므로 함수가 기본값인 NULL을 반환합니다.
다음 예에서는 자동차에서 주행 및 이벤트 ID와 타임스탬프가 포함되는 GPS Ping을 수신합니다. 이제 각 Ping 간의 시간 차이를 계산하려고 합니다.
다음 식은 두 번의 개별 주행에 대해 현재 행과 이전 행의 시간 차이를 계산합니다.
DATE_DIFF( EVENT_TIME, LAG ( EVENT_TIME, 1, NULL ), 'ss' )
데이터를 주행 ID로 분할하고 이벤트 ID로 정렬합니다.
TRIP_ID
EVENT_ID
EVENT_TIME
RETURN VALUE
101
1
2017-05-03 12:00:00
NULL
101
2
2017-05-03 12:00:34
34
101
3
2017-05-03 12:02:00
86
102
1
2017-05-03 12:00:00
NULL
102
2
2017-05-03 12:01:56
116
102
3
2017-05-03 12:02:00
4
첫 번째 및 네 번째 행의 lag 값이 지정된 파티션 밖에 있으므로 함수가 기본값인 NULL 값 2개를 반환했습니다.