跳转到主内容
跳转到主内容

quantileDD

quantileDD

首次引入于:v24.1

计算样本的近似分位数,并提供相对误差保证。 通过构建一个 DD 来实现。

语法

quantileDD(relative_accuracy, [level])(expr)

别名medianDD

参数

  • relative_accuracy — 分位数的相对精度。取值范围为 0 到 1。sketch 结构的大小取决于数据范围和相对精度。数据范围越大、相对精度越小,sketch 越大。sketch 的大致内存占用为 log(max_value/min_value)/relative_accuracy。推荐值为 0.001 或更高。Float*
  • level — 可选。分位数级别。取值范围为 0 到 1。默认值:0.5。Float*

参数

返回值

指定级别的近似分位数。Float64

示例

使用 DD sketch 计算分位数

CREATE TABLE example_table (a UInt32, b Float32) ENGINE = Memory;
INSERT INTO example_table VALUES (1, 1.001), (2, 1.002), (3, 1.003), (4, 1.004);

SELECT quantileDD(0.01, 0.75)(a), quantileDD(0.01, 0.75)(b) FROM example_table;
┌─quantileDD(0.01, 0.75)(a)─┬─quantileDD(0.01, 0.75)(b)─┐
│        2.974233423476717  │                      1.01 │
└───────────────────────────┴───────────────────────────┘

另请参阅