SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Wie SQLite Count() funktioniert

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.