Skip to main content


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.


quantileDeterministic(level)(expr, determinator)

Alias: medianDeterministic.


  • 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.


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


Input table:

β”‚ 1 β”‚
β”‚ 1 β”‚
β”‚ 2 β”‚
β”‚ 3 β”‚


SELECT quantileDeterministic(val, 1) FROM t


β”Œβ”€quantileDeterministic(val, 1)─┐
β”‚ 1.5 β”‚

See Also