Freigeben über


avg-Funktion (XQuery)

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.

Hinweise

Alle Typen von atomaren Werten, die an avg() übergeben werden, müssen ein Untertyp genau eines 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() erhält den Basistyp der übergebenen Typen, z. B. xs:double im Fall von xdt:untypedAtomic.

Wenn die Eingabe statisch leer ist, wird dies angegeben und ein statischer Fehler ausgegeben.

Die avg()-Funktion gibt den Mittelwert der berechneten Zahlen zurück. 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 $arg ignoriert.

In allen anderen Fällen gibt die Funktion einen statischen Fehler zurück.

Beispiele:

Dieses Thema stellt XQuery-Beispiele für XML-Instanzen bereit, die in verschiedenen Spalten des xml-Typs in der AdventureWorks-Datenbank gespeichert werden. Einen Überblick über diese Spalten finden Sie unter Darstellung des xml-Datentyps in der AdventureWorks-Datenbank.

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 min function (XQuery) bereitgestellte Abfrage umschreiben, um die avg()-Funktion zu verwenden.

Implementierungseinschränkungen

Die folgenden Einschränkungen sind zu beachten:

  • Die avg()-Funktion ordnet alle ganzzahligen Werte xs:decimal zu.

  • Die avg()-Funktion wird für Werte des Typs xs:duration nicht unterstützt.

  • Sequenzen, die Typen über Basistypbegrenzungen hinweg mischen, werden nicht unterstützt.