Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileExact 函数

quantileExact

引入版本:v1.1.0

精确计算数值数据序列的分位数

为了获得精确值,所有传入的值都会合并到一个数组中,然后对其进行部分排序。 因此,该函数会占用 O(n) 内存,其中 n 是传入值的数量。 不过,当值的数量较少时,该函数的效率非常高。

当在一个查询中使用多个级别不同的 quantile* 函数时,内部状态不会合并 (也就是说,查询的执行效率会低于原本可达到的水平) 。 在这种情况下,请改用 quantiles 函数。

语法

quantileExact(level)(expr)

别名medianExact

参数

  • level — 可选。分位数的级别。取值为 0 到 1 之间的常量浮点数。建议将 level 设为 [0.01, 0.99] 范围内的值。默认值:0.5。当 level=0.5 时,该函数计算中位数。Float*

参数说明

返回值

指定级别的分位数。对于数值数据类型,输出格式与输入格式相同。(U)Int*Int128UInt128Int256UInt256Float*Decimal*DateDateTimeDateTime64

示例

计算精确分位数

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

另请参阅

Navigation