Datenbanken werden häufig zur Beantwortung der Frage „Wie häufig taucht ein bestimmter Datentyp in einer Tabelle auf?“ verwendet. So möchten Sie vielleicht wissen, wie viele Tiere Sie oder ein anderer Besitzer haben, oder verschiedene statistische Erhebungen zu Ihren Tieren machen.
          Das Zählen aller vorhandenen Tiere entspricht der Frage
          „Wie viele Datensätze sind in der Tabelle
          haustier vorhanden?“, denn es gibt
          genau einen Datensatz pro Tier. COUNT(*)
          zählt die Anzahl der Datensätze, d. h., die Abfrage zur
          Zählung Ihrer Tiere sieht wie folgt aus:
        
mysql> SELECT COUNT(*) FROM haustier;
+----------+
| COUNT(*) |
+----------+
|        9 |
+----------+
          Weiter oben haben Sie die Namen der Leute abgerufen, die Tiere
          besitzen. Mit COUNT() können Sie etwa
          ermitteln, wie viele Tiere jeder Besitzer hat:
        
mysql> SELECT besitzer, COUNT(*) FROM haustier GROUP BY besitzer;
+----------+----------+
| besitzer | COUNT(*) |
+----------+----------+
| Benny    |        2 |
| Diane    |        2 |
| Gwen     |        3 |
| Harold   |        2 |
+----------+----------+
          Beachten Sie, dass GROUP BY zur Gruppierung
          aller Datensätze für jeden Besitzer
          besitzer verwendet wird. Ohne diese Klausel
          erhalten Sie lediglich eine Fehlermeldung:
        
mysql> SELECT besitzer, COUNT(*) FROM haustier;
ERROR 1140 (42000): 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 praktisch, wenn Sie Ihre Daten auf verschiedene Arten
          charakterisieren wollen. Die folgenden Beispiele zeigen
          verschiedene Wege, statistische Daten zu den Tieren zu
          erheben.
        
Anzahl der Exemplare je Tierart:
mysql> SELECT gattung, COUNT(*) FROM haustier GROUP BY gattung;
+----------+----------+
| gattung  | COUNT(*) |
+----------+----------+
| Vogel    |        2 |
| Katze    |        2 |
| Hund     |        3 |
| Hamster  |        1 |
| Schlange |        1 |
+----------+----------+
Anzahl der Tiere je Geschlecht:
mysql> SELECT geschlecht, COUNT(*) FROM haustier GROUP BY geschlecht;
+------------+----------+
| geschlecht | COUNT(*) |
+------------+----------+
| NULL       |        1 |
| w          |        4 |
| m          |        4 |
+------------+----------+
          (In dieser Ausgabe gibt NULL an, dass das
          Geschlecht unbekannt ist.)
        
Anzahl der Tiere je Kombination von Tierart und Geschlecht:
mysql> SELECT gattung, geschlecht, COUNT(*) FROM haustier GROUP BY gattung, geschlecht;
+----------+------------+----------+
| gattung  | geschlecht | COUNT(*) |
+----------+------------+----------+
| Vogel    | NULL       |        1 |
| Vogel    | w          |        1 |
| Katze    | w          |        1 |
| Katze    | m          |        1 |
| Hund     | w          |        1 |
| Hund     | m          |        2 |
| Hamster  | w          |        1 |
| Schlange | m          |        1 |
+----------+------------+----------+
          Wenn Sie COUNT() verwenden, müssen Sie
          nicht die gesamte Tabelle abrufen. Die obige Abfrage
          beispielsweise sieht wie folgt aus, wenn Sie nur für Hunde
          und Katzen durchgeführt wird:
        
mysql>SELECT gattung, geschlecht, COUNT(*) FROM haustier->WHERE gattung = 'Hund' OR gattung = 'Katze'->GROUP BY gattung, geschlecht;+---------+------------+----------+ | gattung | geschlecht | COUNT(*) | +---------+------------+----------+ | Katze | w | 1 | | Katze | m | 1 | | Hund | w | 1 | | Hund | m | 2 | +---------+------------+----------+
Oder, wenn Sie die Anzahl der Tiere je Geschlecht nur für diejenigen Tiere anzeigen wollen, deren Geschlecht auch bekannt ist:
mysql>SELECT gattung, geschlecht, COUNT(*) FROM haustier->WHERE geschlecht IS NOT NULL->GROUP BY gattung, geschlecht;+----------+------------+----------+ | gattung | geschlecht | COUNT(*) | +----------+------------+----------+ | Vogel | w | 1 | | Katze | w | 1 | | Katze | m | 1 | | Hund | w | 1 | | Hund | m | 2 | | Hamster | w | 1 | | Schlange | m | 1 | +----------+------------+----------+
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

