COUNT()
Aggregatfunktionen
COUNT() zählt Zeilen. Es ist die meistgenutzte Aggregatfunktion und beantwortet Fragen wie „Wie viele Kunden haben wir?“ oder „Wie viele Bestellungen gab es im März?“. Entscheidend ist, was du in die Klammern schreibst.
Die drei Varianten
COUNT(*)– zählt alle Zeilen, inklusive solcher mitNULL.COUNT(Spalte)– zählt nur Zeilen, in denen die Spalte nicht NULL ist.COUNT(DISTINCT Spalte)– zählt die verschiedenen Werte einer Spalte.
Beispiel
SELECT COUNT(*) AS AnzahlKunden FROM Kunden;
| AnzahlKunden |
|---|
| 5 |
Beispiel: NULL-Unterschied
Angenommen, zwei von fünf Kunden haben keinen Eintrag in Stadt (NULL):
SELECT COUNT(*) AS Zeilen,
COUNT(Stadt) AS MitStadt
FROM Kunden;
| Zeilen | MitStadt |
|---|---|
| 5 | 3 |
Beispiel: DISTINCT
Wie viele verschiedene Städte kommen vor?
SELECT COUNT(DISTINCT Stadt) AS Staedte FROM Kunden;
Mehrere Kunden aus „Berlin“ werden dabei nur einmal gezählt.
COUNT mit GROUP BY
Sehr häufig zählst du pro Gruppe – etwa Bestellungen je Kunde:
SELECT KundenID, COUNT(*) AS Bestellungen FROM Bestellungen GROUP BY KundenID;
Stolperfalle
COUNT(*) und COUNT(Spalte) liefern unterschiedliche Zahlen, sobald NULL-Werte im Spiel sind – wähle bewusst. Performance-Hinweis: COUNT(*) ist in den meisten Datenbanken am schnellsten; schreibe nicht COUNT(1) in der Annahme, es sei flotter – moderne Optimizer behandeln beides gleich.
Welche Variante zählt auch Zeilen, in denen die betrachtete Spalte NULL ist?