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. Если точность опущена, устанавливается значение 10 000.
  • 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