Функция avg (XQuery)
Возвращает среднее значение для последовательности чисел.
Синтаксис
fn:avg($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
Аргументы
- $arg
Последовательность атомарных значений, для которых вычисляется среднее значение.
Замечания
Все типы значений, передаваемых функции avg(), должны являться подтипами только одного из трех встроенных базовых числовых типов или типа xdt:untypedAtomic. Они не могут быть смешанными. Значения типа xdt:untypedAtomic приводятся к типу xs:double. Результат функции avg() приводится к базовому типу для переданных типов, например тип xdt:untypedAtomic приводится к типу xs:double.
Если входное значение статически пусто, подразумевается пустое значение и возвращается статическая ошибка.
Функция avg() возвращает вычисленное среднее значение чисел. Например:
sum($arg**) div count($arg)**
Если параметр $arg представляет собой пустую последовательность, возвращается пустая последовательность.
Если значение типа xdt:untypedAtomic не может быть приведено к типу xs:double, то во входной последовательности $arg это значение не учитывается.
Во всех прочих случаях функция возвращает статическую ошибку.
Примеры
В этом разделе представлены примеры XQuery-запросов к экземплярам XML-данных, хранящимся в различных столбцах типа xml в базе данных База данных AdventureWorks2008R2. Обзор каждого из этих столбцов см. в разделе Представление типов данных XML в базе данных AdventureWorks2008R2.
А. Использование функции XQuery avg() для нахождения расположения цехов в производственном процессе, в которых время работы превышает среднее значение для всех цехов
Можно переписать запрос, приведенный в разделе Функция min (XQuery), чтобы в нем использовалась функция avg().
Ограничения реализации
Существуют следующие ограничения.
Функция avg() сопоставляет все целочисленные значения типу xs:decimal.
Функция avg() не поддерживает значения типа xs:duration.
Не поддерживаются последовательности, в которых смешиваются типы на основе разных базовых типов.