difference() function
The difference()
function computes the difference between subsequent records.
The user-specified columns of numeric type are subtracted while others are kept intact.
*Function type: Transformation
**Output data type:* Float
difference(
nonNegative: false,
columns: ["_value"],
keepFirst: false
)
Parameters
nonNegative
Indicates if the difference is allowed to be negative. When set to true
, if a value is less than the previous value, it is assumed the previous value should have been a zero.
*Data type: Boolean*
columns
The columns to use to compute the difference. Defaults to ["_value"]
.
*Data type: Array of Strings*
keepFirst
Indicates the first row should be kept. If true
, the difference will be null
. Defaults to false
.
*Data type: Boolean*
Subtraction rules for numeric types
- The difference between two non-null values is their algebraic difference; or
null
, if the result is negative andnonNegative: true
; null
minus some value is alwaysnull
;- Some value
v
minusnull
isv
minus the last non-null value seen beforev
; ornull
ifv
is the first non-null value seen.
Output tables
For each input table with n
rows, difference()
outputs a table with n - 1
rows.
Examples
from(bucket: "example-bucket")
|> range(start: -5m)
|> difference()
from(bucket: "example-bucket")
|> range(start: -5m)
|> difference(nonNegative: true)
Example data transformation
Input table
_time | _value | tag |
---|---|---|
0001 | null | tv |
0002 | 6 | tv |
0003 | 4 | tv |
0004 | 10 | tv |
0005 | null | tv |
With nonNegative set to false
|> difference(nonNegative: false)
Output table
_time | _value | tag |
---|---|---|
0002 | null | tv |
0003 | -2 | tv |
0004 | 6 | tv |
0005 | null | tv |
With nonNegative set to true
|> difference(nonNegative: true):
Output table
_time | _value | tag |
---|---|---|
0002 | null | tv |
0003 | null | tv |
0004 | 6 | tv |
0005 | null | tv |
With keepFirst set to true
|> difference(nonNegative: false, keepFirst: true):
Output table
_time | _value | tag |
---|---|---|
0001 | null | tv |
0002 | null | tv |
0003 | -2 | tv |
0004 | 6 | tv |
0005 | null | tv |