类别:

聚合函数 (百分位估计)、窗口函数

APPROX_PERCENTILE_ESTIMATE

返回指定 T-Digest 状态所需的近似百分位数值。

APPROX_PERCENTILE_ACCUMULATEAPPROX_PERCENTILE_COMBINE 生成的 T-Digest 状态,可用于使用此函数计算百分位数估计值。

因此,APPROX_PERCENTILE_ESTIMATE(APPROX_PERCENTILE_ACCUMULATE(...)) 等同于 APPROX_PERCENTILE(...)。

另请参阅:

APPROX_PERCENTILEAPPROX_PERCENTILE_ACCUMULATEAPPROX_PERCENTILE_COMBINE

语法

APPROX_PERCENTILE_ESTIMATE( <state> , <percentile> )
Copy

实参

state

一个表达式,其中包含通过调用 APPROX_PERCENTILE_ACCUMULATEAPPROX_PERCENTILE_COMBINE 生成的状态信息。

percentile

大于或等于 0.0 且小于 1.0 的常量实值。此参数表示从 0 到 99.999 的百分位数...(例如,值 0.65 表示第 65 百分位数)。

示例

考虑一个场景,您需要从一组给定的数字中估算多个百分位数值。为此,您可以创建状态,然后使用 APPROX_PERCENTILE_ESTIMATE 计算所有百分位数:

  1. 首先,存储状态:

    CREATE OR REPLACE TABLE resultstate AS (SELECT APPROX_PERCENTILE_ACCUMULATE(c1) s FROM testtable);
    
    Copy
  2. 然后,查询多个百分位数的状态:

    SELECT APPROX_PERCENTILE_ESTIMATE(s , 0.01),
           APPROX_PERCENTILE_ESTIMATE(s , 0.15),
           APPROX_PERCENTILE_ESTIMATE(s , 0.845)
    FROM testtable;
    
    Copy

有关更广泛的示例,请参阅 APPROX_PERCENTILE_ACCUMULATE 中的“示例”部分。

语言: 中文