Mit SQL COUNT() können Sie abfragen, wie viele Zeilen sich innerhalb einer Tabelle befinden. Durch die WHERE-Bedingung ist es außerdem möglich, die Such- und Aus­ga­be­kri­te­ri­en noch weiter zu spe­zi­fi­zie­ren.

Was ist SQL COUNT()?

Es gibt in der Struc­tu­red Query Language zahl­rei­che Funk­tio­nen, mit denen Sie einfache ma­the­ma­ti­sche Aufgaben durch­füh­ren können. Neben SQL AVG() und SUM() ist ins­be­son­de­re SQL COUNT() sehr nützlich. Die Funktion gibt Ihnen die Anzahl der Zeilen aus, die einem be­stimm­ten Kriterium ent­spre­chen. Das erlaubt es Ihnen, Ihre Tabelle nach eigenen An­for­de­run­gen zu filtern und erhöht so die Über­sicht­lich­keit. SQL COUNT() wird mit dem SQL-Befehl SELECT verwendet. Durch ver­schie­de­ne optionale Parameter können Sie die Funktion noch genauer in­stru­ie­ren. Einige mögliche Beispiele dafür zeigen wir Ihnen im Folgenden.

vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Die Syntax der Funktion

Grund­sätz­lich lohnt sich zunächst al­ler­dings ein Blick auf die Syntax und generelle Funk­ti­ons­wei­se von SQL COUNT(). Diese ist in der Stan­dard­va­ri­an­te nur zwei Zeilen lang und sieht so aus:

SELECT COUNT(*)
FROM tabelle;
sql

Es ist jedoch häufig sinnvoll, eine WHERE-Bedingung ein­zu­bau­en, um die Ausgabe zu spe­zi­fi­zie­ren. In diesem Fall wird die Funktion ein wenig länger:

SELECT COUNT(*)
FROM tabelle
WHERE bedingung;
sql

Beispiel für die Funk­ti­ons­wei­se

Um die Mög­lich­kei­ten zu ver­an­schau­li­chen, die sich Ihnen durch SQL COUNT() bieten, erstellen wir eine bei­spiel­haf­te Tabelle namens Kundenliste. Diese umfasst Angaben zur Kun­den­num­mer, den Namen der Kundin oder des Kunden, deren oder dessen Standort, die Anzahl der be­stell­ten Artikel und die in­ves­tier­te Summe in Euro. Sie sieht so aus:

Kun­den­num­mer Name Standort Artikel Ge­samt­be­trag
1427 Schmidt Berlin 14 634
1377 Schulz Hamburg 9 220
1212 Peters Hamburg 15 619
1431 Müller München 22 912
1118 Becker NULL 10 312

Wenden wir nun die Ba­sis­va­ri­an­te der Funktion auf diese Tabelle an, ergibt sich folgender Code:

SELECT COUNT(*)
FROM Kundenliste;
sql

Als Ausgabe erhalten Sie den Wert 5, da Ihre Tabelle fünf Zeilen enthält.

Abfrage der Spalten spe­zi­fi­zie­ren

Durch das Sternchen hinter COUNT weisen Sie das System an, aus­nahms­los alle Zeilen und Felder zu be­rück­sich­ti­gen. Es ist aber auch möglich, die Anfrage lediglich auf bestimmte Spalten zu re­du­zie­ren. In diesem Fall werden NULL-Werte nicht be­rück­sich­tigt. Wenn wir also die Anzahl der Zeilen in Standort über­prü­fen, werden wir ein anderes Ge­samt­ergeb­nis erhalten:

SELECT COUNT(Standort)
FROM Kundenliste;
sql

Da für den Kunden oder die Kundin Becker kein Standort hin­ter­legt wurde, erhalten wir nun das Ergebnis 4.

Die Kom­bi­na­ti­on mit WHERE

Im nächsten Schritt nutzen wir die Funktion mit einer WHERE-Bedingung. Dies hilft uns, die Einträge nach unseren Vor­stel­lun­gen zu filtern. Wenn wir also bei­spiels­wei­se lediglich über­prü­fen möchten, wie viele Kundinnen und Kunden aus Hamburg kommen, fügen wir diese Bedingung ein:

SELECT COUNT(Standort)
FROM Kundenliste
WHERE Standort = 'Hamburg';
sql

Als Ergebnis erhalten wir nun die 2.

Ähnlich funk­tio­niert SQL COUNT(), wenn wir lediglich Kundinnen und Kunden be­rück­sich­ti­gen möchten, die für min­des­tens 400 Euro ein­ge­kauft haben:

SELECT COUNT(Standort)
FROM Kundenliste
WHERE Gesamtbetrag > 400;
sql

Auf drei Kundinnen und Kunden trifft dies zu.

Doppelte Einträge aus­schlie­ßen

Mit dem Keyword DISTINCT können Sie hingegen doppelte Einträge aus­schlie­ßen. Wenn Sie also wissen möchten, aus wie vielen ver­schie­de­nen Städten Ihre Kundinnen und Kunden kommen, nutzen Sie den folgenden Code:

SELECT COUNT(DISTINCT Standort)
FROM Kundenliste;
sql

Das Ergebnis lautet in diesem Fall 3. Die beiden Einträge für Hamburg wurden nur einmal gezählt und da das Feld für den Kunden oder die Kundin Becker NULL ist, fällt dieses ebenfalls aus der Wertung.

Die Funktion mit einem Alias

Wenn Sie die Ausgabe zu­sätz­lich betiteln möchten, können Sie das Keyword „AS“ verwenden (mehr zu SQL AS in unserem Ratgeber). Dieses erstellt einen Alias für die Dauer der Abfrage. Für unser Beispiel könnte dies ein möglicher Alias sein:

SELECT COUNT(*) AS [Anzahl der Einträge]
FROM Kundenliste;
sql

Die Ausgabe liest sich dann fol­gen­der­ma­ßen:

Anzahl der Einträge
5
sql
Tipp

Wählen Sie das Da­ten­bank­mo­dell, das wirklich zu Ihnen passt: Mit SQL-Server-Hosting von IONOS nutzen Sie nach Wunsch MSSQL, MySQL oder MariaDB und pro­fi­tie­ren von einer Top-Per­for­mance, einer starken Si­cher­heits­ar­chi­tek­tur und per­sön­li­cher Beratung.

Zum Hauptmenü