154 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
4.3.4.8 Zeilen z¨ahlen
Datenbanken werden oft benutzt, um die Frage zu beantworten, wie oft eine bestimmte Art
von Daten in einer Tabelle erscheint. Sie wollen beispielsweise wissen, wie viele Haustiere
Sie haben, oder wie viele Haustiere jeder Besitzer hat, oder Sie wollen verschiedene Arten
von Z¨ahlungen Ihrer Tiere durchf¨uhren.
Die Gesamtzahl der Tiere z¨ahlen, die Sie haben, ist dieselbe Frage wie “Wie viele Zeilen sind
in der pet-Tabelle?”, denn es gibt einen Datensatz pro Haustier. Die COUNT()-Funktion
z¨ahlt die Anzahl von Nicht-NULL-Ergebnissen, daher lautet die Anfrage, um Ihre Tiere zu
z¨ahlen, wie folgt:
mysql> SELECT COUNT(*) FROM pet;
+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+
Sie haben vorher schon einmal die Namen der Leute a/jointfilesconvert/293675/bgefragt, die Haustiere besitzen. Sie
k¨onnen COUNT() benutzen, wenn Sie herausfinden wollen, wie viele Tiere jeder Besitzer hat:
mysql> SELECT besitzer, COUNT(*) FROM pet GROUP BY besitzer;
+-----------+----------+
| besitzer | COUNT(*) |
+-----------+----------+
| Benny | 2 |
| Diane | 2 |
| Gwen | 3 |
| Harold | 2 |
+-----------+----------+
Beachten Sie die Benutzung von GROUP BY, um alle Datens¨atze f¨ur jeden besitzer zu grup-
pieren. Ohne das erhalten Sie eine Fehlermeldung:
mysql> SELECT besitzer, COUNT(besitzer) FROM pet;
ERROR 1140 at line 1: Mixing of GROUP columns (MIN(),MAX(),COUNT()...)
with no GROUP columns is illegal if there is no GROUP BY clause
COUNT() und GROUP BY sind n¨utzlich, um Ihre Daten auf verschiedene Weise zu charak-
terisieren. Die folgenden Beispiele zeigen verschiedene M¨oglichkeiten, um Z¨ahlungen Ihrer
Tiere durchzuf¨uhren.
Anzahl der Tiere pro Art:
mysql> SELECT art, COUNT(*) FROM pet GROUP BY art;
+---------+----------+
| art | COUNT(*) |
+---------+----------+
| Vogel | 2 |
| Katze | 2 |
| Hund | 3 |
| Hamster | 1 |
| Schlange| 1 |
Comentarios a estos manuales