Du arbeitest mit Tabellen und möchtest wissen, wie viele Einträge in einer Spalte oder mit einem Filter vorhanden sind? Mit der Aggregationsfunktion SQL COUNT kannst du die Anzahl der Datensätze in einer Tabelle zählen. Diese Funktion ist besonders praktisch, wenn du die Anzahl der online anwesenden Benutzer oder auch die Anzahl der Kommentare zu einem Blogartikel wissen möchtest. COUNT() wird häufig von SQL-Nutzern verwendet. Hier erfährst du mehr über die Syntax und die Anwendungsfälle der Funktion COUNT().
Die SQL COUNT() Syntax
Es gibt mehrere Möglichkeiten, die Funktion SQL COUNT über eine SQL-Abfrage zu verwenden. Die erste Möglichkeit ist, die Gesamtzahl der Zeilen zu ermitteln, unabhängig davon, ob sie null sind oder nicht:
SELECT COUNT(*) FROM table
Danach kannst du die Gesamtzahl der Einträge in einer bestimmten Spalte abrufen. Für diese Funktion werden Datensätze mit einem Nullwert nicht gezählt. Für eine Spalte mit dem Namen „spaltenname“ ist die Syntax zum Zählen der Datensätze wie folgt:
SELECT COUNT(nom_colonne) FROM table
Die neueste Syntax von COUNT erlaubt es, eindeutige Elemente für eine Spalte zu zählen. Das bedeutet, dass doppelte Einträge das Ergebnis der Funktion für die ausgewählte Spalte nicht beeinflussen. Für eine Spalte mit dem Namen „spaltenname“ lautet die Syntax zum Zählen der Anzahl eindeutiger Werte wie folgt:
SELECT COUNT(DISTINCT nom_colonne) FROM table
Um die Lesbarkeit der Ergebnisse zu optimieren, kannst du die Zeilen mit GROUP BY filtern. So gibt die Funktion die Anzahl der Zeilen in jeder Gruppe zurück. Beachte, dass Duplikate und Nullwerte gezählt werden.
Wie wird die Funktion SQL COUNT() verwendet ?
Je nachdem, wie du die Funktion COUNT() verwendest, erhältst du unterschiedliche Ergebnisse. Hier erfährst du, wie du die Funktion je nach Anwendungsfall einsetzen kannst.
Verwendung von SQL COUNT(*)
Angenommen, du arbeitest in einem Unternehmen namens FinanceIncorporation. Du suchst nach der Gesamtzahl der Angestellten innerhalb der Organisation. Dann ist die Verwendung der Funktion COUNT() nützlich.
SELECT COUNT(*)
FROM Human Resources.Employees;
Die Ergebnisse werden dann wie folgt aussehen:
———–
490
(1 Zeile(n) betroffen)
Verwendung von SQL COUNT() mit GROUP BY
Wenn deine Tabelle eine Spalte namens ‚departement‘ enthält, die jede Person in eine Abteilung innerhalb des Unternehmens kategorisiert. Mit der Verwendung der GROUP BY-Klausel erhältst du die Anzahl der Mitarbeiter pro Abteilung. Die Abfrage würde dann wie folgt aussehen:
SELECT COUNT(*)
FROM Human Resources.Employees;
GROUP BY departement;
Verwendung von SQLCOUNT() mit WHERE
Um bei den Beispielen der FinaceIncorporation zu bleiben: Angenommen, du möchtest die Anzahl der Vertriebsmitarbeiter herausfinden, die Software im Wert von über 25.000 € verkauft haben. Die Abfrage würde dann wie folgt aussehen:
SELECT COUNT(*)
FROM Verkauf.Vertriebsmitarbeiter
WHERE Verkaufswert > 25.000;
Die WHERE-Anweisung ermöglicht es dir, einen Filter auf die Datensätze anzuwenden. Where wendet einen Filter auf die Datensätze an, um die Ergebnisse deiner Abfrage zu präzisieren. Eine weitere praktische optionale Anweisung ist ORDER BY. Dieser Ausdruck wird verwendet, um die Ergebnisse der Abfrage in einer bestimmten Reihenfolge anzuzeigen.
Verwendung von SQL COUNT(Spalte)
Eine andere Methode ist es, die Anzahl der registrierten Nutzer einer E-Commerce-Website zu zählen, die einen Kauf getätigt haben. Angenommen, du hast eine Tabelle „id_kaufs“. Wenn es keinen Kauf gibt, ist der Wert null und wird daher nicht gezählt. Die Abfrage würde also wie folgt aussehen:
SELECT COUNT(id_letzter_Einkauf) FROM user
Kann man mehrere COUNT() in einer SQL-Abfrage haben?
Bei einem Projekt kann es vorkommen, dass du mehrere Aufrufe in einer Datenbank durchführen musst. Dies ist jedoch zeitaufwendig und für eine bessere Leistung ist es besser, diese Aufrufe zu reduzieren.
Anstatt drei aufeinanderfolgende Abfragen durchzuführen:
SELECT COUNT(*) FROM table1;
SELECT COUNT(*) FROM table2;
SELECT COUNT(*) FROM table2 WHERE is_valid = 1;
Du kannst diese Abfragen zu einer einzigen Abfrage zusammenfassen, um einen Datensatz mit den Werten count1, count2 und count3 zurückzugeben:
SELECT
(SELECT COUNT(*) FROM table1) as count1,
(SELECT COUNT(*) FROM table2) as count2,
(SELECT COUNT(*) FROM table2 WHERE is_valid = 1) as count3.
Mehrere Abfragen zu einer einzigen zusammenzufassen ist eine nützliche Funktion, wenn du die Anzahl der registrierten und eingeloggten Mitglieder, die Anzahl der Online-Besucher oder auch die ungelesenen Nachrichten und Benachrichtigungen eines Mitglieds zählen möchtest.
Schlussfolgerung zur Verwendung von COUNT() in SQL
Mit der Aggregationsfunktion SQL COUNT() kann die Anzahl der Datensätze in einer Tabelle gezählt werden. Durch die Syntax mit WHERE und COUNT(DISTINCT) ist es möglich, die Anzahl der Datensätze mit einer genaueren Abfrage zu erhalten, wodurch das Ergebnis besser lesbar wird. Schließlich können mehrere COUNT()-Abfragen zusammengefasst werden, um die Leistung zu optimieren und mehrere sich wiederholende Aufrufe zu vermeiden.
>> Auch interessant: SQL vs. NO SQL
Wenn du mehr über SQL erfahren möchtest, schau Dir unseranderen Artikel zum Thema an:
- NoSQL: Nicht-relationale Datenbanken
- Apache Cassandra: Die beliebteste noSQL BDD
- SQL Joins
- SQL Tutorial
Du willst SQL zur Abfrage von relationalen Datenbanken erlernen ?