The median()
function is a special application of the quantile()
function
that returns the median _value
of an input table or all non-null records in the input table
with values that fall within the 0.5
quantile (50th percentile) depending on the method used.
Function type: Selector or Aggregate
Output data type: Object
median(
column: "_value",
method: "estimate_tdigest",
compression: 0.0
)
When using the estimate_tdigest
or exact_mean
methods, it outputs non-null
records with values that fall within the 0.5
quantile.
When using the exact_selector
method, it outputs the non-null record with the
value that represents the 0.5
quantile.
The
median()
function can only be used with float value types. It is a special application of thequantile()
function which uses an approximation implementation that requires floats. You can convert your value column to a float column using thetoFloat()
function.
Parameters
column
The column used to calculate the median.
Defaults to "_value"
.
Data type: String
method
Defines the method of computation. Defaults to "estimate_tdigest"
.
Data type: String
The available options are:
estimate_tdigest
An aggregate method that uses a t-digest data structure to compute an accurate quantile estimate on large data sources.
exact_mean
An aggregate method that takes the average of the two points closest to the quantile value.
exact_selector
A selector method that returns the data point for which at least quantile points are less than.
compression
Indicates how many centroids to use when compressing the dataset.
A larger number produces a more accurate result at the cost of increased memory requirements.
Defaults to 1000.0
.
Data type: Float
Examples
Median as an aggregate
from(bucket: "telegraf/autogen")
|> filter(fn: (r) =>
r._measurement == "mem" and
r._field == "used_percent"
)
|> range(start:-12h)
|> window(every:10m)
|> median()
Median as a selector
from(bucket: "telegraf/autogen")
|> filter(fn: (r) =>
r._measurement == "mem" and
r._field == "used_percent"
)
|> range(start:-12h)
|> window(every:10m)
|> median(method: "exact_selector")
Function definition
median = (method="estimate_tdigest", compression=0.0, tables=<-) =>
quantile(
q:0.5,
method:method,
compression:compression
)