Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
агрегатная функция
Область применения:
Databricks SQL
Databricks Runtime
Возвращает среднее значение, вычисляемое из значений группы. Эта функция является синонимом avg агрегатной функции.
Синтаксис
mean ( [ALL | DISTINCT] expr ) [FILTER ( WHERE cond ) ]
Эту функцию также можно вызвать как функцию окна с помощью предложения OVER.
Аргументы
-
expr: выражение, значением которого является число. -
cond: необязательное логическое выражение для фильтрации строк, используемых для агрегирования.
Возвраты
Тип результата определяется на основе аргументов:
-
DECIMAL(p, s): результат имеет типDECIMAL(p + 4, s + 4). Если достигнута максимальная точность для типа DECIMAL, увеличение масштаба ограничивается, чтобы избежать потери значащих цифр. - Результат для интервала "год-месяц" — это
INTERVAL YEAR TO MONTH. - для дневного временного интервала: результат -
INTERVAL DAY TO SECOND. - Во всех остальных случаях результатом является
DOUBLE.
Значения NULL в группе игнорируются. Если группа пуста или состоит только из нулевых значений, результат будет NULL.
Если указано значение DISTINCT, вычисляется среднее значение после удаления дубликатов.
Предупреждение
В Databricks Runtime, если spark.sql.ansi.enabledfalse, то переполнение возвращается NULL вместо ошибки.
Распространенные условия ошибки
Примеры
> SELECT mean(col) FROM VALUES (1), (2), (3) AS tab(col);
2.0
> SELECT mean(DISTINCT col) FROM VALUES (1), (1), (2), (NULL) AS tab(col);
1.5
> SELECT mean(col) FROM VALUES (1), (2), (NULL) AS tab(col);
1.5
> SELECT mean(c1) FROM VALUES(5e307::DOUBLE), (5e307::DOUBLE) AS tab(c1);
Error: ARITHMETIC_OVERFLOW