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


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

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

Возвращает медианное значение, вычисленное на основе значений группы.

Синтаксис

median ( [ALL | DISTINCT] expr ) [FILTER ( WHERE cond ) ]

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

Аргументы

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

Возвраты

Далее показано, как вычисляются типы результатов:

  • для интервала типа "год-месяц": тип результата INTERVAL YEAR TO MONTH.
  • для интервала типа "время дня": тип результата INTERVAL DAY TO SECOND.
  • Во всех остальных случаях результатом является значение DOUBLE.

Значения NULL в группе игнорируются. Если группа пуста или состоит только из нулей, возвращается результат NULL.

Если указано DISTINCT, дубликаты удаляются, и вычисляется медиана.

Эта функция является синонимом percentile_cont(0,5) WITHIN GROUP (ORDER BY expr).

Примеры

> SELECT median(col) FROM VALUES (1), (2), (2), (3), (4), (NULL) AS tab(col);
 2.0

> SELECT median(DISTINCT col) FROM VALUES (1), (2), (2), (3), (4), (NULL) AS tab(col);
 2.5

> SELECT median(col) FROM VALUES (INTERVAL '1' YEAR), (INTERVAL '2' YEAR) AS tab(col);
 1-6