Агрегатная функция approx_percentile
Область применения: Databricks SQL Databricks Runtime
Возвращает приблизительное значение процентиля expr
в группе.
Синтаксис
approx_percentile ( [ALL | DISTINCT] expr, percentile [, accuracy] ) [ FILTER ( WHERE cond ) ]
Эту функцию также можно вызвать как функцию окна с помощью предложения OVER
.
Аргументы
-
expr
: числовое выражение. -
percentile
: числовый литерал от 0 до 1 или литеральный массив числовых значений, каждый из которых — от 0 до 1. -
accuracy
: литералINTEGER
больше 0. Если точность не указана, она устанавливается на 10000. -
cond
: необязательное логическое выражение для фильтрации строк, используемых для агрегирования.
Возвраты
Агрегатная функция возвращает выражение, которое является наименьшим значением в упорядоченной группе (отсортировано от наименьшего до наибольшего) таким образом, что не более percentile
значений expr
меньше значения или равно значению.
Если percentile
является массивом, approx_percentile
возвращает приблизительный массив процентилей для expr
в percentile
.
Параметр accuracy
позволяет повысить точность приближения в ущерб затратам памяти.
Более высокое значение точности повышает точность результата, а 1.0/accuracy
определяет относительную ошибку приближения.
Эта функция является синонимом агрегатной функции percentile_approx.
Если DISTINCT
указана функция работает только в уникальном наборе значений expr
.
Примеры
> 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), (6), (7), (9), (10) AS tab(col);
6
> SELECT approx_percentile(DISTINCT col, 0.5, 100) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
7