Агрегатная функция median
Область применения: Databricks SQL Databricks Runtime 11.3 LTS и выше
Возвращает медиану, вычисляемую из values группы.
Синтаксис
median ( [ALL | DISTINCT] expr ) [FILTER ( WHERE cond ) ]
Эту функцию также можно вызвать как функцию window с помощью предложения 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