sql >> Database >  >> RDS >> SQLite

Hoe SQLite Count() werkt

De SQLite count() functie kan worden gebruikt om het aantal rijen in een resultatenset te retourneren.

Het kan ook worden gebruikt om het aantal keren terug te geven dat een bepaalde kolom niet NULL is in de resultatenset.

Het kan op twee manieren worden gebruikt. Als u het sterretje (* ) jokerteken, retourneert het het totale aantal rijen in de groep. Als u de naam van een kolom opgeeft, wordt het aantal keren geretourneerd dat die kolom niet NULL is.

Syntaxis

De syntaxis gaat als volgt:

count(X)
count(*)

Dus in dit geval X kan de naam van een kolom zijn, en de asterisk (* ) jokerteken wordt gebruikt om het totale aantal rijen in de groep op te geven.

Voorbeeld:count(*)

Hier is een eenvoudig voorbeeld om de asterisk (*)-syntaxis te demonstreren om het aantal rijen in een tabel te retourneren.

SELECT count(*) FROM Customer;

Resultaat:

59

Ik heb deze query uitgevoerd op de Chinook-voorbeelddatabase en het blijkt dat er 59 rijen zijn in de Klant tafel.

Voorbeeld:count(X)

In dit voorbeeld geef ik de naam van een specifieke kolom van de tabel door.

SELECT count(Fax) FROM Customer;

Resultaat:

12

In dit geval is de Fax kolom heeft 12 niet-NULL-waarden.

Met andere woorden, 47 rijen bevatten een NULL-waarde in de Fax kolom.

Een WHERE-clausule gebruiken

Het resultaat van count() wordt berekend na een WHERE clausules.

SELECT count(Fax) 
FROM Customer 
WHERE CustomerId <= 5;

Resultaat:

2

In dit geval waren er slechts twee niet-NULL-waarden in de Fax kolom binnen de resultatenset.

Zo zien de resultaten eruit met geretourneerde kolommen (en zonder gebruik van de count() functie).

SELECT CustomerId, Fax 
FROM Customer 
WHERE CustomerId <= 5;

Resultaat:

CustomerId  Fax               
----------  ------------------
1           +55 (12) 3923-5566
2                             
3                             
4                             
5           +420 2 4172 5555  

We kunnen dus zien dat alleen rijen 1 en 5 niet-NULL-waarden hebben in de Fax kolom.

Een LIMIT-clausule gebruiken

Het resultaat wordt niet berekend na een LIMIT clausule.

SELECT count(Fax) 
FROM Customer 
LIMIT 5;

Resultaat:

12

Maar je kunt in plaats daarvan iets als dit doen:

SELECT count(Fax) 
FROM (SELECT Fax FROM Customer 
LIMIT 5);

Resultaat:

2

Gegroepeerde resultaten

Een handige use case voor count() is om het te gebruiken in combinatie met de GROUP BY clausule, zodat er meerdere rijen worden geretourneerd – die elk een groep vertegenwoordigen – met een telling van de rijen in die groep.

Hier is een voorbeeld.

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;

Resultaat:

Name             count(al.Title)
---------------  ---------------
David Coverdale  1              
Deep Purple      11             
Def Leppard      1              
Dennis Chambers  1              
Djavan           2              
Dread Zeppelin   1              

Het DISTINCT-zoekwoord

U kunt de DISTINCT . toevoegen trefwoord om alleen afzonderlijke waarden te tellen. Met andere woorden, u kunt dubbele waarden in de berekening verwijderen.

Zie voor voorbeelden hiervan Duplicaten verwijderen uit SQLite Count()-resultaten.


  1. java.sql.SQLException:Onjuiste tekenreekswaarde:'\xF0\x9F\x91\xBD\xF0\x9F...'

  2. PayPal ODBC-stuurprogramma

  3. Wat is T-SQL?

  4. Wat is het verschil tussen postgres en postgresql_psycopg2 als database-engine voor django?