Outdated Version
You are viewing an older version of this section. View current production version.
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 which 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 |
+------+-----------------------------+