LAG
Value function. Returns an expression evaluated at some offset before the current row. If there is no such row returns NULL
instead.
Syntax
LAG ( expression [, offset]) OVER ( [PARTITION BY (col | expr), ...] [ORDER BY (col | expr), ...] )
Arguments
expression: any expression. This may be a column name, the result of another function, or a math operation
offset: A constant integer that specifies the number of rows before the current row to evaluate the expression. Defaults to 1 if not specified
Return Type
The result of expression
Examples
create table example (a int, b int); insert into example values(1,2),(2,2),(3,3),(4,3); select a,lag(a) over(order by (a)) from example; +------+---------------------------+ | a | lag(a) over(order by (a)) | +------+---------------------------+ | 1 | NULL | | 2 | 1 | | 3 | 2 | | 4 | 3 | +------+---------------------------+ select a,lag(a,2) over(order by (a)) from example; +------+-----------------------------+ | a | lag(a,2) over(order by (a)) | +------+-----------------------------+ | 1 | NULL | | 2 | NULL | | 3 | 1 | | 4 | 2 | +------+-----------------------------+