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 alevelvalue in the range of[0.01, 0.99]. Default value: 0.5. Atlevel=0.5the 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 occurs 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
Datetype. - DateTime if input values have the
DateTimetype.
Example
Input table:
┌─val─┐
│ 1 │
│ 1 │
│ 2 │
│ 3 │
└─────┘
Query:
SELECT quantileDeterministic(val, 1) FROM t
Result:
┌─quantileDeterministic(val, 1)─┐
│ 1.5 │
└───────────────────────────────┘
See Also