histogramQuantile() function

histogramQuantile() approximates a quantile given a histogram that approximates the cumulative distribution of the dataset.

Each input table represents a single histogram. The histogram tables must have two columns – a count column and an upper bound column.

The count is the number of values that are less than or equal to the upper bound value. The table can have any number of records, each representing a bin in the histogram. The counts must be monotonically increasing when sorted by upper bound. If any values in the count column or upper bound column are null, it returns an error. The count and upper bound columns must not be part of the group key.

The quantile is computed using linear interpolation between the two closest bounds. If either of the bounds used in interpolation are infinite, the other finite bound is used and no interpolation is performed.

Output tables

Output tables have the same group key as corresponding input tables. Columns not part of the group key are dropped. A single value column of type float is added. The value column represents the value of the desired quantile from the histogram.

Function type signature
    <-tables: stream[A],
    ?countColumn: string,
    ?minValue: float,
    ?onNonmonotonic: string,
    ?quantile: float,
    ?upperBoundColumn: string,
    ?valueColumn: string,
) => stream[B] where A: Record, B: Record
For more information, see Function type signatures.



Quantile to compute. Value must be between 0 and 1.


Column containing histogram bin counts. Default is _value.


Column containing histogram bin upper bounds. Default is le.


Column to store the computed quantile in. Default is `_value.


Assumed minimum value of the dataset. Default is 0.0.


Describes behavior when counts are not monotonically increasing when sorted by upper bound. Default is error.

Supported values:

  • error: Produce an error.
  • force: Force bin counts to be monotonic by adding to each bin such that it is equal to the next smaller bin.
  • drop: When a nonmonotonic table is encountered, produce no output. If the quantile falls below the lowest upper bound, interpolation is performed between minValue and the lowest upper bound. When minValue is equal to negative infinity, the lowest upper bound is used.


Input data. Default is piped-forward data (<-).


Compute the 90th quantile of a histogram

    |> histogramQuantile(quantile: 0.9)

View example input and output

Was this page helpful?

Thank you for your feedback!

Introducing InfluxDB Clustered

A highly available InfluxDB 3.0 cluster on your own infrastructure.

InfluxDB Clustered is a highly available InfluxDB 3.0 cluster built for high write and query workloads on your own infrastructure.

InfluxDB Clustered is currently in limited availability and is only available to a limited group of InfluxData customers. If interested in being part of the limited access group, please contact the InfluxData Sales team.

Learn more
Contact InfluxData Sales

The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Flux is going into maintenance mode and will not be supported in InfluxDB 3.0. This was a decision based on the broad demand for SQL and the continued growth and adoption of InfluxQL. We are continuing to support Flux for users in 1.x and 2.x so you can continue using it with no changes to your code. If you are interested in transitioning to InfluxDB 3.0 and want to future-proof your code, we suggest using InfluxQL.

For information about the future of Flux, see the following:

State of the InfluxDB Cloud Serverless documentation

InfluxDB Cloud Serverless documentation is a work in progress.

The new documentation for InfluxDB Cloud Serverless is a work in progress. We are adding new information and content almost daily. Thank you for your patience!

If there is specific information you’re looking for, please submit a documentation issue.