approx_percentile

approx_percentile

approx_percentile介绍

approx_percentile(col, percentage [, accuracy]) - 返回数值或 ANSI 间隔列 col 的近似百分位数,这是 col 中排序值(从最小到最大排序)的最小值,使得不超过 percentage 指定的比例的 col 值小于或等于该值。percentage 的值必须在 0.0 和 1.0 之间。accuracy 参数(默认值:10000)是一个正数值字面量,它控制近似精度,以内存为代价。accuracy 的值越高,近似精度越好,1.0/accuracy 是近似的相对误差。当 percentage 是一个数组时,percentage 数组中的每个值都必须在 0.0 和 1.0 之间。在这种情况下,返回给定 percentage 数组中列 col 的近似百分位数数组。

Examples:

> SELECT approx_percentile(col, array(0.5, 0.4, 0.1), 100) FROM VALUES (0), (1), (2), (10) AS tab(col);
 [1,1,0]
> SELECT approx_percentile(col, 0.5, 100) FROM VALUES (0), (6), (7), (9), (10) AS tab(col);
 7
> SELECT approx_percentile(col, 0.5, 100) FROM VALUES (INTERVAL '0' MONTH), (INTERVAL '1' MONTH), (INTERVAL '2' MONTH), (INTERVAL '10' MONTH) AS tab(col);
 0-1
> SELECT approx_percentile(col, array(0.5, 0.7), 100) FROM VALUES (INTERVAL '0' SECOND), (INTERVAL '1' SECOND), (INTERVAL '2' SECOND), (INTERVAL '10' SECOND) AS tab(col);
 [0 00:00:01.000000000,0 00:00:02.000000000]

Since: 2.1.0