COUNT()

Mit COUNT() kann man die Anzahl von ausgewählten Datensätzen ausgeben. Für diese Aggregatfunktion gibt man einfach das Schlüsselwort COUNT, samt der Name der zu zählenden Datensätzen in den Klammern an:


COUNT(name)

Zu beachten ist, dass dabei alle Datensätze gezählt werden, bei denen die entsprechende Spalte nicht NULL ist!

Anbei ein einfaches Beispiel für die Demonstation der COUNT()-Syntax in SQL. Wir gehen wieder von vollgender vereinfachten Tabelle aus:

Tabelle zu COUNT
Diesmal wollen wir die Anzahl der Horror-Bücher ermitteln. Demnach muss die Rubrik gezählt werden, wo die Rubrik gleich "Horror" ist. Dies geht folgendermaßen:


SELECT COUNT(Rubrik) AS AnzahlHorrorBuecher
 FROM Buecher
 WHERE Rubrik='Horror'

Das Ergebnis:
COUNT() SQL Ergebnis

Nun möchten wir wissen, wie viele Horror-Bücher welcher Autor geschrieben hat:


SELECT Autor, COUNT(Rubrik) AS AnzahlHorrorBuecher
 FROM buecher
 WHERE Rubrik='Horror'
 GROUP BY Autor

Ganz wichtig ist dabei, dass man mit GROUP BY die Anzeige gruppieren muss. Ansonsten sieht man nämlich folgende Fehlermeldung:

Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

Da wir diesmal zusätzlich den Autor ausgeben wollen, müssen wir auch nach dem Autor gruppieren und erhalten dann folgende richtige Ausgabe: COUNT() SQL Ergebnis mit Gruppierung