on¶
Description¶
on
is a special function used to specify the join condition for some join
verbs. (for example, join and lookup).
The function allows you to specify a join predicate (any boolean expression) and an optional time frame using the frame or frame_exact function.
Return type¶
joinpredicate
Domain¶
This is a scalar function (calculates a single output value for a single input row.)
Categories¶
Usage¶
on(expr, [ frame ])
Argument |
Type |
Optional |
Repeatable |
Restrictions |
---|---|---|---|---|
expr |
bool |
no |
no |
none |
frame |
frame |
yes |
no |
constant |
Examples¶
join on([email protected]), name:@container.name
Perform an inner-join between the default input of the verb and input
@container
based on the condition that the default input’s column
container_id
must equal to the other input’s id
column. Because the =
operator (eq) is used to compare the two columns, a null container_id
cannot be joined against a null id
or any other value.
join on(same(container_id, @container.id)), name:@container.name
Perform an inner-join between the default input of the verb and input
@container
based on the condition that the default input’s column
container_id
must contain the same value as the other input’s id
column.
Because same is used to compare the two columns, a null
container_id
can also join with a null id
from the other input.
join on(value > @right.min and value < @right.max), name:@right.name
Perform an inner-join between the default input of the verb and input @right
based on the condition value
must be within the range defined by min
and
max
.
join on([email protected], frame(back:5s, ahead:1s)), name:@right.name
Perform an inner join between the default input and input @container
. The
container_id
from the default input must equal to the id
column from the
input @container
, and the timestamp from the input @container
must overlap
with a window of [t - 5s, t + 1s]
where t
is the timestamp of the default
input.