percentile_approx

percentile_approx

percentile_approx 介绍

percentile_approx(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 之间。在这种情况下,返回列 col 在给定百分比数组的近似百分位数数组。

Examples:

> SELECT percentile_approx(col, array(0.5, 0.4, 0.1), 100) FROM VALUES (0), (1), (2), (10) AS tab(col);
 [1,1,0]
> SELECT percentile_approx(col, 0.5, 100) FROM VALUES (0), (6), (7), (9), (10) AS tab(col);
 7
> SELECT percentile_approx(col, 0.5, 100) FROM VALUES (INTERVAL '0' MONTH), (INTERVAL '1' MONTH), (INTERVAL '2' MONTH), (INTERVAL '10' MONTH) AS tab(col);
 0-1
> SELECT percentile_approx(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