Поделиться через


Агрегатная функция percentile

Область применения: флажок Databricks SQL флажок Databricks Runtime

Возвращает точное значение процентиля expr в указанном percentage в группе.

Синтаксис

percentile ( [ALL | DISTINCT] expr, percentage [, frequency] ) [FILTER ( WHERE cond ) ]

Эту функцию также можно вызвать как функцию окна с помощью OVER предложения.

Аргументы

  • expr: выражение, значением которого является число.
  • percentage: числовое выражение от 0 до 1 или МАССИВ числовых выражений, каждое из которых находится в диапазоне от 0 до 1.
  • frequency: необязательный литерал целого числа больше 0.
  • cond: необязательное логическое выражение для фильтрации строк, используемых для агрегирования.

Возвраты

DOUBLE, если percentage является числовым, или ARRAY, содержащий значения DOUBLE (если percentage является массивом).

Периодичность описывает количество раз обязательного подсчета expr. Частота 10 для определенного значения эквивалентна этому значению, которое появляется в окне 10 раз с частотой 1. По умолчанию используется период 1.

Если задано значение DISTINCT, функция работает только с уникальным набором значений expr.

Примеры

> SELECT percentile(col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
 6.0

> SELECT percentile(DISTINCT col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
 3.0

> SELECT percentile(col, 0.3, freq) FROM VALUES (0, 1), (10, 2) AS tab(col, freq);
 6.0

> SELECT percentile(col, array(0.25, 0.75)) FROM VALUES (0), (10) AS tab(col);
 [2.5,7.5]