next
Knowledge Checkpoint
Readings that will help you understand this documentation better:
Definition
A window function that returns the value of the next row at an offset relative to the current row.
Syntax
next(expr, offset, order: order_expr, ...)
next(expr, offset, order: order_expr, ...)
next(expr, offset, order: order_expr, ..., reset: partition_expr, ...)
next(expr, offset, order: order_expr, ..., partition: partition_expr, ...)
Examples
next(count(users.id), order: count(users.id) | desc())
next(count(users.id), 2, order: users.created_at | month())
next(count(users.id), 4, order: users.created_at | month(), reset: users.gender)
// Axis-aware examples
next(revenue, order: 'rows') // Next row value
next(revenue, 2, order: 'columns', partition: 'rows') // Two columns ahead within each row
next(sales, order: 'x_axis' | desc()) // Next value in reverse order
Input
expr
(required): An expression of the valueoffset
(optional): The offset of the next row relative to the current row. If not specified, the default value is 1.order
(required, repeatable): A field that is used for ordering. The order defaults to ascending. The order can be set explicitly withasc()
ordesc()
. You can also use axis references:'rows'
or'x_axis'
: Order by dimensions mapped to rows/x-axis'columns'
or'legend'
: Order by dimensions mapped to columns/legend- Axis references can be modified with
asc()
ordesc()
:order: 'rows' | desc()
warningIf the specified order does not uniquely identify rows, the result of the function can be non-deterministic. For example, if you use
order: users.age
, and there are multiple users with the same age in the same partition, the result can be unexpected.partition
orreset
(repeatable, optional): A field that is used for partitioning the table. You can also use axis references like'rows'
,'columns'
,'x_axis'
, or'legend'
. If partitions are not specified:- If
order
is specified, the table will be partitioned by all other grouping columns. - If
order
is not specified, the table will be considered as a single partition.
- If
Output
The value of the next row in a offset relative to the current row.
Sample Usages
Please refer to the sample usages in previous.