Databases Reference
In-Depth Information
Werte von Aggregatfunktionen ignoriert. Die Anweisung aus Listing 11.7 ist also
äquivalent zu
select avg(preis),min(preis),max(preis),sum(preis),count(preis)
from alben
where preis is not null
Die Handhabung von null ist bei Funktionen uneinheitlich. Über die Gründe,
warum Aggregatfunktionen eine Extrawurst für null braten, mag man spekulie-
ren:
Da in die Berechnung von Aggregaten oft sämtliche Datensätze einer Tabelle
eingehen, kann die Verarbeitung sehr zeitaufwändig sein. Wenn Prädikate wie
preis is not null vergessen werden und die Spalte auch nur einen einzigen
null -Wert enthält, muss die Anweisung, die möglicherweise Stunden oder Tage
benötigt hat, korrigiert und erneut ausgeführt werden.
Hinweis
Aggregatfunktionen ignorieren null -Werte.
Der Vollständigkeit halber sei noch erwähnt, dass Aggregate über leere Spalten
oder über Spalten, die ausschließlich null enthalten, auch null zum Ergebnis
haben.
Welcher Datentyp für die Argumente einer Aggregatfunktion in Frage kommt, er-
gibt sich aus dem Kontext. Sinnlose Kombinationen wie
select avg(titel)
from alben
werden nicht akzeptiert: Aus Texten können keine Durchschnitte gebildet wer-
den. Anders sieht die Sache bei der folgenden Anweisung aus:
select max(titel)
from alben
Das Ergebnis ist Tim und der Haifischsee - der in der lexikographischen
Reihenfolge der Albentitel größte Wert. Eine Sonderstellung nimmt übrigens die
count -Funktion ein. In der Anweisung
select count(preis)
from alben
zählt sie die Werte in der Spalte preis und ignoriert dabei null . In der Form
select count( * )
from alben
 
Search WWH ::




Custom Search