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


Агрегатная функция 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]