Databases Reference
In-Depth Information
werden die Datensätze der Tabelle alben gezählt. Dieser kleine Unterschied hat
zur Folge, dass wir zwei verschiedene Ergebnisse bekommen, wenn wir den
Durchschnittspreis unserer Alben in der folgenden Anweisung auf zwei verschie-
dene Weisen ermitteln:
Listing 11.8: Die zwei Gesichter von count
select avg(preis), sum(preis)/count( * )
from alben
Von der avg -Funktion werden null -Werte ignoriert. Bei der zweiten Variante
zur Durchschnittsberechnung werden die null -Werte nur im Zähler ignoriert. Die
Funktion count( * ) zählt Datensätze, so dass null hier keinerlei Relevanz zu-
kommt. Diese kleinen Unterschiede mögen banal erscheinen, in der Praxis sind
sie aber eine nicht zu unterschätzende Fehlerquelle.
Tabelle 11.10: Ergebnis der Abfrage aus Listing 11.8
avg(preis)
sum(preis) / count(*)
4.525
3.62
Wenn wir nicht nur null , sondern auch Dubletten bei der Aggregatbildung igno-
rieren wollen, hilft uns - wie bei einem einfachen select - das Schlüsselwort
distinct weiter:
select count(distinct reihe)
from alben
H2 findet, wie erwartet, vier verschiedene Comicreihen.
Mit Funktionen und insbesondere mit Aggregatfunktionen können wir ein-
drucksvolle Ergebnisse erzielen. Aggregatfunktionen spielen auch im folgenden
Kapitel eine zentrale Rolle. In verschachtelten Abfragen (siehe Kapitel 14) können
sie allerdings zu rechenzeitfressenden Monstern mutieren.
 
Search WWH ::




Custom Search