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