跳转到主要内容

quantiles

引入版本:v1.1.0 同时计算数值数据序列在不同级别上的多个近似分位数 此函数采用水塘抽样,水塘容量最大为 8192,并使用随机数生成器进行采样。 结果是非确定性的。 当需要多个分位数值时,使用 quantiles 比分别调用多个 quantile 函数更高效,因为所有分位数都可在单次遍历数据时计算完成。 语法
quantiles(level1, level2, ...)(expr)
参数
  • level — 分位数的级别。一个或多个从 0 到 1 的常量浮点数。建议将 level 的值设在 [0.01, 0.99] 范围内。Float*
参数 返回值 按指定级别的顺序返回的近似分位数组。Array(Float64)Array(Date)Array(DateTime) 示例 高效计算多个分位数
Query
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);

SELECT quantiles(0.25, 0.5, 0.75, 0.9)(val) FROM t;
Response
┌─quantiles(0.25, 0.5, 0.75, 0.9)(val)─┐
│ [3, 5.5, 8, 9.5]                     │
└──────────────────────────────────────┘
最后修改于 2026年6月10日