Skip to main content
Skip to main content

quantileExactHigh

quantileExactHigh

Introduced in: v20.8

Similar to quantileExact, this computes the exact quantile of a numeric data sequence.

To get the exact value, all the passed values are combined into an array, which is then fully sorted. The sorting algorithm's complexity is O(N·log(N)), where N = std::distance(first, last) comparisons.

The return value depends on the quantile level and the number of elements in the selection, i.e. if the level is 0.5, then the function returns the higher median value for an even number of elements and the middle median value for an odd number of elements. Median is calculated similarly to the median_high implementation which is used in python.

For all other levels, the element at the index corresponding to the value of level * size_of_array is returned.

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

quantileExactHigh(level)(expr)

Aliases: medianExactHigh

Parameters

  • level — Optional. Level of quantile. 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. Float*

Arguments

Returned value

Returns the quantile of the specified level. Float64 or Date or DateTime

Examples

Computing exact high quantile

SELECT quantileExactHigh(number) FROM numbers(10);
┌─quantileExactHigh(number)─┐
│                         5 │
└───────────────────────────┘

Computing specific quantile level

SELECT quantileExactHigh(0.1)(number) FROM numbers(10);
┌─quantileExactHigh(0.1)(number)─┐
│                              1 │
└────────────────────────────────┘