Set-Funktion (set_function_spec)
Es gibt eine Reihe von Funktionen, die auf eine Menge von Werten (Zeilen) als Argument angewandt werden und ein Ergebnis liefern. Als Bezeichnung für derartige Funktionen wird der Begriff Set-Funktion (
set_function_spec ) verwendet.Syntax
<set_function_spec> ::= COUNT (*) | <distinct_function> | <all_function>
COUNT (*), distinct_function, all_functionErläuterung
Set-Funktionen arbeiten über Gruppen von Werten, aber sie geben nur einen Wert zurück. Das Ergebnis besteht aus einer Zeile. Wenn eine Set-Funktion in einer Anweisung verwendet wird, muß auch auf jede andere Spalte der Anfrage eine solche Funktion angewandt werden. Dies gilt jedoch nicht für eine Spalte, über die mittels GROUP BY eine Gruppierung vorgenommen wurde. Es wird dann für jede Gruppe der Wert der Set-Funktion bestimmt.
Das Argument einer DISTINCT-Funktion oder einer ALL-Funktion ist eine
Ergebnistabelle oder eine Gruppe (die Ergebnistabelle kann durch eine GROUP-Bedingung gruppiert werden). NULL-Werte werden, mit Ausnahme der Funktion COUNT(*), nicht in die Berechnung einbezogen.Bei einigen Set-Funktionen wird unabhängig von dem bei der Anmeldung festgelegten Isolation-Level (siehe
CONNECT-Anweisung) kein Sperrverfahren durchgeführt.
Beispieltabelle
SELECT SUM(konto) sum_konto, MIN(konto) min_konto,
FIXED (AVG(konto),7,2) avg_konto,
MAX(konto) max_konto, COUNT(*) anzahl
FROM kunde WHERE ort = 'Berlin'
SUM_KONTO |
MIN_KONTO |
AVG_KONTO |
MAX_KONTO |
ANZAHL |
-164.17 |
-4167.79 |
-23.45 |
3770.50 |
7 |