InfluxDB Docs

quantile() function

The quantile() function returns records from an input table with _values that fall within a specified quantile or it returns the record with the _value that represents the specified quantile. Which it returns depends on the method used.

Function type: Aggregate or Selector
Output data type: Float or Object

quantile(
  column: "_value",
  q: 0.99,
  method: "estimate_tdigest",
  compression: 1000.0
)

When using the estimate_tdigest or exact_mean methods, it outputs non-null records with values that fall within the specified quantile.

When using the exact_selector method, it outputs the non-null record with the value that represents the specified quantile.

Parameters

column

The column to use to compute the quantile. Defaults to "_value".

Data type: String

q

A value between 0 and 1 indicating the desired quantile.

Data type: Float

method

Defines the method of computation.

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.

Data type: Float

Examples

Quantile as an aggregate
from(bucket: "example-bucket")
	|> range(start: -5m)
	|> filter(fn: (r) =>
    r._measurement == "cpu" and
    r._field == "usage_system")
	|> quantile(
    q: 0.99,
    method: "estimate_tdigest",
    compression: 1000.0
  )
Quantile as a selector
from(bucket: "example-bucket")
	|> range(start: -5m)
	|> filter(fn: (r) =>
    r._measurement == "cpu" and
    r._field == "usage_system")
	|> quantile(
    q: 0.99,
    method: "exact_selector"
  )

PERCENTILE()