Der SQLite count()
-Funktion kann verwendet werden, um die Anzahl der Zeilen in einer Ergebnismenge zurückzugeben.
Es kann auch verwendet werden, um zurückzugeben, wie oft eine bestimmte Spalte in der Ergebnismenge nicht NULL ist.
Es kann auf zwei Arten verwendet werden. Wenn Sie das Sternchen (*
) Platzhalterzeichen, gibt es die Gesamtzahl der Zeilen in der Gruppe zurück. Wenn Sie den Namen einer Spalte angeben, wird zurückgegeben, wie oft diese Spalte nicht NULL ist.
Syntax
Die Syntax lautet wie folgt:
count(X)
count(*)
Also in diesem Fall X
könnte der Name einer Spalte sein, und das Sternchen (*
) Platzhalter wird verwendet, um die Gesamtzahl der Zeilen in der Gruppe anzugeben.
Beispiel:count(*)
Hier ist ein einfaches Beispiel, um die Sternchen (*)-Syntax zu demonstrieren, um die Anzahl der Zeilen in einer Tabelle zurückzugeben.
SELECT count(*) FROM Customer;
Ergebnis:
59
Ich habe diese Abfrage in der Chinook-Beispieldatenbank ausgeführt, und es stellt sich heraus, dass Customer 59 Zeilen enthält Tabelle.
Beispiel:count(X)
In diesem Beispiel übergebe ich den Namen einer bestimmten Spalte der Tabelle.
SELECT count(Fax) FROM Customer;
Ergebnis:
12
In diesem Fall das Fax Spalte hat 12 Nicht-NULL-Werte.
Mit anderen Worten, 47 Zeilen enthalten einen NULL-Wert im Fax Spalte.
Eine WHERE-Klausel verwenden
Das Ergebnis von count()
wird nach jedem WHERE
berechnet Klauseln.
SELECT count(Fax)
FROM Customer
WHERE CustomerId <= 5;
Ergebnis:
2
In diesem Fall gab es im Fax nur zwei Nicht-NULL-Werte Spalte innerhalb der Ergebnismenge.
So sehen die Ergebnisse mit zurückgegebenen Spalten aus (und ohne Verwendung von count()
). Funktion).
SELECT CustomerId, Fax
FROM Customer
WHERE CustomerId <= 5;
Ergebnis:
CustomerId Fax ---------- ------------------ 1 +55 (12) 3923-5566 2 3 4 5 +420 2 4172 5555
Wir können also sehen, dass nur die Zeilen 1 und 5 Nicht-NULL-Werte im Fax haben Spalte.
Eine LIMIT-Klausel verwenden
Das Ergebnis wird nach keinem LIMIT
berechnet Klausel.
SELECT count(Fax)
FROM Customer
LIMIT 5;
Ergebnis:
12
Aber Sie können stattdessen so etwas tun:
SELECT count(Fax)
FROM (SELECT Fax FROM Customer
LIMIT 5);
Ergebnis:
2
Gruppierte Ergebnisse
Ein praktischer Anwendungsfall für count()
ist es in Verbindung mit GROUP BY
zu verwenden -Klausel, sodass mehrere Zeilen zurückgegeben werden – wobei jede eine Gruppe darstellt – mit einer Anzahl der Zeilen in dieser Gruppe.
Hier ist ein Beispiel.
SELECT
ar.Name,
count(al.Title)
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
WHERE ar.Name LIKE 'D%'
GROUP BY ar.Name
LIMIT 10;
Ergebnis:
Name count(al.Title) --------------- --------------- David Coverdale 1 Deep Purple 11 Def Leppard 1 Dennis Chambers 1 Djavan 2 Dread Zeppelin 1
Das Schlüsselwort DISTINCT
Sie können den DISTINCT
hinzufügen Schlüsselwort, um nur eindeutige Werte zu zählen. Mit anderen Worten, Sie können doppelte Werte in der Berechnung entfernen.
Beispiele hierfür finden Sie unter So entfernen Sie Duplikate aus SQLite Count()-Ergebnissen.