content/flux/v0/stdlib/universe/difference.md
difference() returns the difference between subsequent values.
null, if the result is negative and nonNegative: true;null minus some value is always null;v minus null is v minus the last non-null value seen
before v; or null if v is the first non-null value seen.nonNegative and initialZero are set to true, difference()
returns the difference between 0 and the subsequent value.
If the subsequent value is less than zero, difference() returns null.For each input table with n rows, difference() outputs a table with
n - 1 rows.
(
<-tables: stream[A],
?columns: [string],
?initialZero: bool,
?keepFirst: bool,
?nonNegative: bool,
) => stream[B] where A: Record, B: Record
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
Disallow negative differences. Default is false.
When true, if a value is less than the previous value, the function
assumes the previous value should have been a zero.
List of columns to operate on. Default is ["_value"].
Keep the first row in each input table. Default is false.
If true, the difference of the first row of each output table is null.
Use zero (0) as the initial value in the difference calculation
when the subsequent value is less than the previous value and nonNegative is
true. Default is false.
Input data. Default is piped-forward data (<-).
import "sampledata"
sampledata.int()
|> difference()
{{< expand-wrapper >}} {{% expand "View example input and output" %}}
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | -2 | t1 |
| 2021-01-01T00:00:10Z | 10 | t1 |
| 2021-01-01T00:00:20Z | 7 | t1 |
| 2021-01-01T00:00:30Z | 17 | t1 |
| 2021-01-01T00:00:40Z | 15 | t1 |
| 2021-01-01T00:00:50Z | 4 | t1 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | 19 | t2 |
| 2021-01-01T00:00:10Z | 4 | t2 |
| 2021-01-01T00:00:20Z | -3 | t2 |
| 2021-01-01T00:00:30Z | 19 | t2 |
| 2021-01-01T00:00:40Z | 13 | t2 |
| 2021-01-01T00:00:50Z | 1 | t2 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:10Z | 12 | t1 |
| 2021-01-01T00:00:20Z | -3 | t1 |
| 2021-01-01T00:00:30Z | 10 | t1 |
| 2021-01-01T00:00:40Z | -2 | t1 |
| 2021-01-01T00:00:50Z | -11 | t1 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:10Z | -15 | t2 |
| 2021-01-01T00:00:20Z | -7 | t2 |
| 2021-01-01T00:00:30Z | 22 | t2 |
| 2021-01-01T00:00:40Z | -6 | t2 |
| 2021-01-01T00:00:50Z | -12 | t2 |
{{% /expand %}} {{< /expand-wrapper >}}
import "sampledata"
sampledata.int()
|> difference(nonNegative: true)
{{< expand-wrapper >}} {{% expand "View example input and output" %}}
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | -2 | t1 |
| 2021-01-01T00:00:10Z | 10 | t1 |
| 2021-01-01T00:00:20Z | 7 | t1 |
| 2021-01-01T00:00:30Z | 17 | t1 |
| 2021-01-01T00:00:40Z | 15 | t1 |
| 2021-01-01T00:00:50Z | 4 | t1 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | 19 | t2 |
| 2021-01-01T00:00:10Z | 4 | t2 |
| 2021-01-01T00:00:20Z | -3 | t2 |
| 2021-01-01T00:00:30Z | 19 | t2 |
| 2021-01-01T00:00:40Z | 13 | t2 |
| 2021-01-01T00:00:50Z | 1 | t2 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:10Z | 12 | t1 |
| 2021-01-01T00:00:20Z | t1 | |
| 2021-01-01T00:00:30Z | 10 | t1 |
| 2021-01-01T00:00:40Z | t1 | |
| 2021-01-01T00:00:50Z | t1 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:10Z | t2 | |
| 2021-01-01T00:00:20Z | t2 | |
| 2021-01-01T00:00:30Z | 22 | t2 |
| 2021-01-01T00:00:40Z | t2 | |
| 2021-01-01T00:00:50Z | t2 |
{{% /expand %}} {{< /expand-wrapper >}}
import "sampledata"
sampledata.int(includeNull: true)
|> difference()
{{< expand-wrapper >}} {{% expand "View example input and output" %}}
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | -2 | t1 |
| 2021-01-01T00:00:10Z | t1 | |
| 2021-01-01T00:00:20Z | 7 | t1 |
| 2021-01-01T00:00:30Z | t1 | |
| 2021-01-01T00:00:40Z | t1 | |
| 2021-01-01T00:00:50Z | 4 | t1 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | t2 | |
| 2021-01-01T00:00:10Z | 4 | t2 |
| 2021-01-01T00:00:20Z | -3 | t2 |
| 2021-01-01T00:00:30Z | 19 | t2 |
| 2021-01-01T00:00:40Z | t2 | |
| 2021-01-01T00:00:50Z | 1 | t2 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:10Z | t1 | |
| 2021-01-01T00:00:20Z | 9 | t1 |
| 2021-01-01T00:00:30Z | t1 | |
| 2021-01-01T00:00:40Z | t1 | |
| 2021-01-01T00:00:50Z | -3 | t1 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:10Z | t2 | |
| 2021-01-01T00:00:20Z | -7 | t2 |
| 2021-01-01T00:00:30Z | 22 | t2 |
| 2021-01-01T00:00:40Z | t2 | |
| 2021-01-01T00:00:50Z | -18 | t2 |
{{% /expand %}} {{< /expand-wrapper >}}
import "sampledata"
sampledata.int()
|> difference(keepFirst: true)
{{< expand-wrapper >}} {{% expand "View example input and output" %}}
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | -2 | t1 |
| 2021-01-01T00:00:10Z | 10 | t1 |
| 2021-01-01T00:00:20Z | 7 | t1 |
| 2021-01-01T00:00:30Z | 17 | t1 |
| 2021-01-01T00:00:40Z | 15 | t1 |
| 2021-01-01T00:00:50Z | 4 | t1 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | 19 | t2 |
| 2021-01-01T00:00:10Z | 4 | t2 |
| 2021-01-01T00:00:20Z | -3 | t2 |
| 2021-01-01T00:00:30Z | 19 | t2 |
| 2021-01-01T00:00:40Z | 13 | t2 |
| 2021-01-01T00:00:50Z | 1 | t2 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | t1 | |
| 2021-01-01T00:00:10Z | 12 | t1 |
| 2021-01-01T00:00:20Z | -3 | t1 |
| 2021-01-01T00:00:30Z | 10 | t1 |
| 2021-01-01T00:00:40Z | -2 | t1 |
| 2021-01-01T00:00:50Z | -11 | t1 |
| _time | _value | *tag |
|---|---|---|
| 2021-01-01T00:00:00Z | t2 | |
| 2021-01-01T00:00:10Z | -15 | t2 |
| 2021-01-01T00:00:20Z | -7 | t2 |
| 2021-01-01T00:00:30Z | 22 | t2 |
| 2021-01-01T00:00:40Z | -6 | t2 |
| 2021-01-01T00:00:50Z | -12 | t2 |
{{% /expand %}} {{< /expand-wrapper >}}