APPROX_PERCENTILE_ESTIMATE¶
返回指定 T-Digest 状态所需的近似百分位数值。
由 APPROX_PERCENTILE_ACCUMULATE 和 APPROX_PERCENTILE_COMBINE 生成的 T-Digest 状态,可用于使用此函数计算百分位数估计值。
因此,APPROX_PERCENTILE_ESTIMATE(APPROX_PERCENTILE_ACCUMULATE(...)) 等同于 APPROX_PERCENTILE(...)。
语法¶
APPROX_PERCENTILE_ESTIMATE( <state> , <percentile> )
实参¶
state
一个表达式,其中包含通过调用 APPROX_PERCENTILE_ACCUMULATE 或 APPROX_PERCENTILE_COMBINE 生成的状态信息。
percentile
大于或等于
0.0
且小于1.0
的常量实值。此参数表示从 0 到 99.999 的百分位数...(例如,值 0.65 表示第 65 百分位数)。
示例¶
考虑一个场景,您需要从一组给定的数字中估算多个百分位数值。为此,您可以创建状态,然后使用 APPROX_PERCENTILE_ESTIMATE 计算所有百分位数:
首先,存储状态:
CREATE OR REPLACE TABLE resultstate AS (SELECT APPROX_PERCENTILE_ACCUMULATE(c1) s FROM testtable);
然后,查询多个百分位数的状态:
SELECT APPROX_PERCENTILE_ESTIMATE(s , 0.01), APPROX_PERCENTILE_ESTIMATE(s , 0.15), APPROX_PERCENTILE_ESTIMATE(s , 0.845) FROM testtable;
有关更广泛的示例,请参阅 APPROX_PERCENTILE_ACCUMULATE 中的“示例”部分。