返回

Datenbank: Was ist der Unterschied zwischen COUNT(*) und COUNT(Spaltenname)?

见解分享

COUNT(*) vs. COUNT(Spaltenname): Der Unterschied

Die Funktionen COUNT() und COUNT(Spaltenname) in SQL dienen beide dazu, die Anzahl der Zeilen in einer Tabelle zu zählen. Der Unterschied zwischen den beiden Funktionen besteht darin, dass COUNT() alle Zeilen in der Tabelle zählt, während COUNT(Spaltenname) nur die Zeilen zählt, in denen der Wert der angegebenen Spalte nicht NULL ist.

Dies kann einen großen Unterschied machen, wenn man eine Tabelle mit vielen NULL-Werten hat. Wenn man beispielsweise eine Tabelle mit 100 Zeilen hat und 50 davon NULL-Werte in der Spalte "Alter" haben, dann würde COUNT(*) 100 zurückgeben, während COUNT(Alter) nur 50 zurückgeben würde.

Wann sollte man COUNT(*) verwenden?

COUNT(*) sollte man verwenden, wenn man die Anzahl aller Zeilen in einer Tabelle zählen möchte, unabhängig davon, ob sie NULL-Werte enthalten oder nicht. Dies ist zum Beispiel nützlich, wenn man die Gesamtzahl der Datensätze in einer Tabelle ermitteln möchte.

Wann sollte man COUNT(Spaltenname) verwenden?

COUNT(Spaltenname) sollte man verwenden, wenn man die Anzahl der Zeilen in einer Tabelle zählen möchte, die einen bestimmten Wert in einer bestimmten Spalte haben. Dies ist zum Beispiel nützlich, wenn man die Anzahl der Kunden ermitteln möchte, die ein bestimmtes Produkt gekauft haben.

Beispiele

Um zu veranschaulichen, wie sich COUNT(*) und COUNT(Spaltenname) unterscheiden, betrachten wir die folgende Tabelle:

ID Name Alter
1 John Doe 30
2 Jane Smith 25
3 Tom Brown NULL
4 Mary Johnson 40
5 Bob Smith NULL

Wenn wir COUNT(*) für diese Tabelle verwenden, erhalten wir das Ergebnis 5, da die Tabelle 5 Zeilen enthält. Wenn wir COUNT(Alter) verwenden, erhalten wir jedoch nur das Ergebnis 3, da nur 3 Zeilen einen Wert in der Spalte "Alter" haben.

Fazit

COUNT() und COUNT(Spaltenname) sind zwei wichtige Funktionen in SQL, die beide dazu dienen, die Anzahl der Zeilen in einer Tabelle zu zählen. Der Unterschied zwischen den beiden Funktionen besteht darin, dass COUNT() alle Zeilen in der Tabelle zählt, während COUNT(Spaltenname) nur die Zeilen zählt, in denen der Wert der angegebenen Spalte nicht NULL ist.