# quantileDeterministic

Computes an approximate quantile of a numeric data sequence.

This function applies reservoir sampling with a reservoir size up to 8192 and deterministic algorithm of sampling. The result is deterministic. To get an exact quantile, use the quantileExact function.

When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). In this case, use the quantiles function.

Syntax

``````quantileDeterministic(level)(expr, determinator)
``````

Alias: `medianDeterministic`.

Arguments

• `level` — Level of quantile. Optional parameter. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median.
• `expr` — Expression over the column values resulting in numeric data types, Date or DateTime.
• `determinator` — Number whose hash is used instead of a random number generator in the reservoir sampling algorithm to make the result of sampling deterministic. As a determinator you can use any deterministic positive number, for example, a user id or an event id. If the same determinator value occures too often, the function works incorrectly.

Returned value

• Approximate quantile of the specified level.

Type:

• Float64 for numeric data type input.
• Date if input values have the `Date` type.
• DateTime if input values have the `DateTime` type.

Example

Input table:

``````┌─val─┐
│   1 │
│   1 │
│   2 │
│   3 │
└─────┘
``````

Query:

``````SELECT quantileDeterministic(val, 1) FROM t
``````

Result:

``````┌─quantileDeterministic(val, 1)─┐
│                           1.5 │
└───────────────────────────────┘
``````