Aggregatfunktionen – avg
Gilt für:SQL Server
Gibt den Mittelwert einer Sequenz von Zahlen zurück.
Syntax
fn:avg($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
Argumente
$arg
Die Sequenz der atomaren Werte, deren Mittelwert berechnet wird.
Bemerkungen
Alle Typen der atomisierten Werte, die an avg() übergeben werden, müssen ein Untertyp von genau einem der drei integrierten numerischen Basistypen oder xdt:untypedAtomic sein. Es darf keine Mischung vorliegen. Werte des Typs xdt:untypedAtomic werden wie xs:double behandelt. Das Ergebnis von avg() empfängt den Basistyp der übergebenen Typen, z. B. xs:double im Fall von xdt:untypedAtomic.
Wenn die Eingabe statisch leer ist, wird leer impliziert, und ein statischer Fehler wird ausgelöst.
Die avg() -Funktion gibt den Durchschnitt der berechneten Zahlen zurück. Zum Beispiel:
sum($arg) div count($arg)
Wenn $arg eine leere Sequenz ist, wird die leere Sequenz zurückgegeben.
Wenn ein xdt:untypedAtomic-Wert nicht in xs:double umgewandelt werden kann, wird der Wert in der Eingabesequenz ignoriert, $arg.
In allen anderen Fällen gibt die Funktion einen statischen Fehler zurück.
Beispiele
Dieses Thema enthält XQuery-Beispiele für XML-Instanzen, die in verschiedenen Xml-Typspalten in der AdventureWorks-Datenbank gespeichert sind.
A. Verwenden der XQuery-Funktion avg() zum Suchen nach Arbeitsplatzstandorten im Fertigungsprozess, an denen die Anzahl der Arbeitsstunden größer als der Mittelwert für alle Arbeitsplatzstandorte ist.
Sie können die in der min-Funktion (XQuery) bereitgestellte Abfrage erneut schreiben, um die avg() -Funktion zu verwenden.
Implementierungseinschränkungen
Die folgenden Einschränkungen sind zu beachten:
Die avg() -Funktion ordnet alle ganzen Zahlen xs:decimal zu.
Die avg() -Funktion für Werte vom Typ xs:duration wird nicht unterstützt.
Sequenzen, die Typen über Basistypbegrenzungen hinweg mischen, werden nicht unterstützt.