order_by¶
Description¶
Specify the ordering when processing data. This is used by ordered windowing functions (like lag and last) as well as ordered aggregation functions (like array_agg).
Ordering is specified by alternating fields and a literal boolean for whether
the field is in ascending (false
) or descending (true
) order. Because of
backwards compatibility, the function will default to ascending if you omit
specifying a boolean value, however, doing so makes for sometimes ambiguous
expressions, and is not recommended.
Return type¶
ordering
Domain¶
This is a scalar function (calculates a single output value for a single input row.)
Categories¶
Usage¶
order_by(columnname_1, [ descending_1 ], columnname_2, [ descending_2 ], ...)
Argument |
Type |
Optional |
Repeatable |
Restrictions |
---|---|---|---|---|
columnname |
storable |
no |
yes |
column |
descending |
bool |
yes |
yes |
constant |
order_by(ordering_1, ordering_2, ...)
Argument |
Type |
Optional |
Repeatable |
Restrictions |
---|---|---|---|---|
ordering |
ordering |
no |
yes |
constant |
Examples¶
statsby list:array_agg(username, order_by(timestamp, false)), group_by(hostname)
This produces a list of all users for each host, in order of timestamp within each host, from a table with columns timestamp
, hostname
and username
.
statsby list:array_agg(make_object(time:timestamp, host:hostname), order_by(hostname, false, timestamp, true)), group_by(username)
This produces a list of all times and hosts a user has been on, ordered by host alphabetically and reverse chronologically, from a table with columns timestamp
, hostname
and username
.
Aliases¶
orderby
(deprecated)