lag

개요

현재 행 이전의 행의 값을 가져오는 명령어

타입

TEXT, INTEGER, BIGINT, REAL, DATE, TIMESTAMP

설명

현재 행 이전의 행의 값을 가져오는 명령어

현재 데이터와 이전 데이터의 값을 비교 할 때 사용되면 유용한 명령어

예를들어, 선택한 컬럼의 데이터가 1,2,3,4 순서로 있을 때, 해당 데이터의 이전값 즉 null,1,2,3 의 값을 가져오는 동작을 실행

Parameters

* | lag {column:str} BY {orderby:str} (COUNT {count:int}) (DEFAULT {default:str}) (PARTITION {partition:str}) (AS {alias:str})?

이름

Type

설명

필수

column

string

해당 컬럼의 값의 이전행을 가져오기 위한 컬럼

필수

orderby

string

해당 컬럼 기준으로 sort 적용

필수

count

int

row offset 설정 값

옵션

default

string

빈 칸에 들어갈 default 값

옵션

partition

string

해당 column기준 같은 row들을 grouping 한다. 나중에 각 group에서 가능을 따로 적용 한다.

옵션

alias

string

결과 데이터를 저장할 컬럼명, (Default: PREVIOUS_ROW_OF_값컬럼명)

옵션

Examples

A

B

C

2020-01-01

45

1

2020-01-02

53

1

2020-01-03

23

2

2020-01-04

1

2

  • 예제1

* | lag B BY A

A

B

C

PREVIOUS_ROW_OF_B

2020-01-01

45

1

2020-01-02

53

1

45

2020-01-03

23

2

53

2020-01-04

1

2

23

  • 예제2

* | lag B BY A AS 결과컬럼

A

B

C

PREVIOUS_ROW_OF_B

2020-01-01

45

1

2020-01-02

53

1

45

2020-01-03

23

2

53

2020-01-04

1

2

23

  • 예제3

* | lag B BY A COUNT 2

A

B

C

PREVIOUS_ROW_OF_B

2020-01-01

45

1

2020-01-02

53

1

2020-01-03

23

2

45

2020-01-04

1

2

53

  • 예제4

* | lag B BY A DEFAULT 0

A

B

C

PREVIOUS_ROW_OF_B

2020-01-01

45

1

0

2020-01-02

53

1

45

2020-01-03

23

2

53

2020-01-04

1

2

23

  • 예제5

* | lag B BY A PARTITION C

A

B

C

PREVIOUS_ROW_OF_B

2020-01-01

45

1

2020-01-02

53

1

45

2020-01-03

23

2

2020-01-04

1

2

23