---
title: quantile() function
description: quantile() returns rows from each input table with values that fall within a specified quantile or returns the row with the value that represents the specified quantile.
url: https://docs.influxdata.com/flux/v0/stdlib/universe/quantile/
estimated_tokens: 2476
product: Flux
version: v0
---

# quantile() function

-   Flux 0.24.0+
-   View InfluxDB support

`quantile()` returns rows from each input table with values that fall within a specified quantile or returns the row with the value that represents the specified quantile.

`quantile()` supports columns with float values.

### Function behavior

`quantile()` acts as an aggregate or selector transformation depending on the specified `method`.

-   **Aggregate**: When using the `estimate_tdigest` or `exact_mean` methods, `quantile()` acts as an aggregate transformation and outputs the average of non-null records with values that fall within the specified quantile.
-   **Selector**: When using the `exact_selector` method, `quantile()` acts as a selector selector transformation and outputs the non-null record with the value that represents the specified quantile.

##### Function type signature

```js
(
    <-tables: stream[A],
    q: float,
    ?column: string,
    ?compression: float,
    ?method: string,
) => stream[A] where A: Record
```

For more information, see [Function type signatures](/flux/v0/function-type-signatures/).

## Parameters

### column

Column to use to compute the quantile. Default is `_value`.

### q

(Required) Quantile to compute. Must be between `0.0` and `1.0`.

### method

Computation method. Default is `estimate_tdigest`.

**Available methods**:

-   **estimate\_tdigest**: Aggregate method that uses a [t-digest data structure](https://github.com/tdunning/t-digest) to compute an accurate quantile estimate on large data sources.
-   **exact\_mean**: Aggregate method that takes the average of the two points closest to the quantile value.
-   **exact\_selector**: Selector method that returns the row with the value for which at least `q` points are less than.

### compression

Number of centroids to use when compressing the dataset. Default is `1000.0`.

A larger number produces a more accurate result at the cost of increased memory requirements.

### tables

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

## Examples

-   [Quantile as an aggregate](#quantile-as-an-aggregate)
-   [Quantile as a selector](#quantile-as-a-selector)

### Quantile as an aggregate

```js
import "sampledata"

sampledata.float()
    |> quantile(q: 0.99, method: "estimate_tdigest")
```

[](#view-example-input-and-output)

View example input and output

#### Input data

| _time | *tag | _value |
| --- | --- | --- |
| 2021-01-01T00:00:00Z | t1 | -2.18 |
| 2021-01-01T00:00:10Z | t1 | 10.92 |
| 2021-01-01T00:00:20Z | t1 | 7.35 |
| 2021-01-01T00:00:30Z | t1 | 17.53 |
| 2021-01-01T00:00:40Z | t1 | 15.23 |
| 2021-01-01T00:00:50Z | t1 | 4.43 |

| _time | *tag | _value |
| --- | --- | --- |
| 2021-01-01T00:00:00Z | t2 | 19.85 |
| 2021-01-01T00:00:10Z | t2 | 4.97 |
| 2021-01-01T00:00:20Z | t2 | -3.75 |
| 2021-01-01T00:00:30Z | t2 | 19.77 |
| 2021-01-01T00:00:40Z | t2 | 13.86 |
| 2021-01-01T00:00:50Z | t2 | 1.86 |

#### Output data

| *tag | _value |
| --- | --- |
| t1 | 17.53 |

| *tag | _value |
| --- | --- |
| t2 | 19.85 |

### Quantile as a selector

```js
import "sampledata"

sampledata.float()
    |> quantile(q: 0.5, method: "exact_selector")
```

[](#view-example-input-and-output)

View example input and output

#### Input data

| _time | *tag | _value |
| --- | --- | --- |
| 2021-01-01T00:00:00Z | t1 | -2.18 |
| 2021-01-01T00:00:10Z | t1 | 10.92 |
| 2021-01-01T00:00:20Z | t1 | 7.35 |
| 2021-01-01T00:00:30Z | t1 | 17.53 |
| 2021-01-01T00:00:40Z | t1 | 15.23 |
| 2021-01-01T00:00:50Z | t1 | 4.43 |

| _time | *tag | _value |
| --- | --- | --- |
| 2021-01-01T00:00:00Z | t2 | 19.85 |
| 2021-01-01T00:00:10Z | t2 | 4.97 |
| 2021-01-01T00:00:20Z | t2 | -3.75 |
| 2021-01-01T00:00:30Z | t2 | 19.77 |
| 2021-01-01T00:00:40Z | t2 | 13.86 |
| 2021-01-01T00:00:50Z | t2 | 1.86 |

#### Output data

| _time | *tag | _value |
| --- | --- | --- |
| 2021-01-01T00:00:20Z | t1 | 7.35 |

| _time | *tag | _value |
| --- | --- | --- |
| 2021-01-01T00:00:10Z | t2 | 4.97 |

#### Related

-   [Find percentile and quantile values](/influxdb/v2/query-data/flux/percentile-quantile/)
-   [InfluxQL – PERCENTILE()](/influxdb/v1/query_language/functions/#percentile)
-   [experimental.quantile() function](/flux/v0/stdlib/experimental/quantile/)

[transformations](/flux/v0/tags/transformations/) [aggregates](/flux/v0/tags/aggregates/) [selectors](/flux/v0/tags/selectors/)
