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


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

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

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

Синтаксис

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

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

Аргументы

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

Возвраты

DOUBLE если percentage числовое, или ARRAY<DOUBLE> если percentage является ARRAY.

Частота описывает количество раз, которое должно быть подсчитано 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]