Documentation

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
  )

New! Cloud or OSS?

InfluxDB OSS 2.0 now generally available!

InfluxDB OSS 2.0 is now generally available and ready for production use. See the InfluxDB OSS 2.0 release notes.

For information about upgrading to InfluxDB OSS 2.0, see: