median() function
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:* Record
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 the quantile()
function which uses an approximation implementation that requires floats. You can convert your value column to a float column using the toFloat()
function.
Parameters
column
The column to use to compute 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 q
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: "example-bucket")
|> filter(fn: (r) =>
r._measurement == "mem" and
r._field == "used_percent"
)
|> range(start:-12h)
|> window(every:10m)
|> median()
Median as a selector
from(bucket: "example-bucket")
|> 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
)