sql >> Database teknologi >  >> RDS >> SQLite

Sådan fungerer SQLite Count()

SQLite count() funktion kan bruges til at returnere antallet af rækker i et resultatsæt.

Det kan også bruges til at returnere det antal gange, en given kolonne ikke er NULL i resultatsættet.

Det kan bruges på to måder. Hvis du indtaster stjernen (* ) jokertegn, vil det returnere det samlede antal rækker i gruppen. Hvis du angiver navnet på en kolonne, vil den returnere det antal gange, den kolonne ikke er NULL.

Syntaks

Syntaksen ser sådan ud:

count(X)
count(*)

Så i dette tilfælde X kunne være navnet på en kolonne og stjernen (* ) jokertegn bruges til at angive det samlede antal rækker i gruppen.

Eksempel:count(*)

Her er et grundlæggende eksempel for at demonstrere asterisk (*)-syntaksen for at returnere antallet af rækker i en tabel.

SELECT count(*) FROM Customer;

Resultat:

59

Jeg kørte denne forespørgsel på Chinook-eksempeldatabasen, og så viser det sig, at der er 59 rækker i Kunde tabel.

Eksempel:count(X)

I dette eksempel sender jeg navnet på en specifik kolonne i tabellen.

SELECT count(Fax) FROM Customer;

Resultat:

12

I dette tilfælde skal Fax kolonne har 12 ikke-NULL værdier.

Med andre ord indeholder 47 rækker en NULL-værdi i Fax kolonne.

Brug af en WHERE-klausul

Resultatet af count() beregnes efter enhver Hvor klausuler.

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

Resultat:

2

I dette tilfælde var der kun to ikke-NULL-værdier i Fax kolonne i resultatsættet.

Sådan ser resultaterne ud med returnerede kolonner (og uden brug af count() funktion).

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

Resultat:

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

Så vi kan se, at kun række 1 og 5 har ikke-NULL værdier i Fax kolonne.

Brug af en LIMIT-klausul

Resultatet beregnes ikke efter nogen LIMIT klausul.

SELECT count(Fax) 
FROM Customer 
LIMIT 5;

Resultat:

12

Men du kan gøre sådan noget i stedet:

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

Resultat:

2

Grupperte resultater

Et praktisk anvendelsestilfælde for count() er at bruge det sammen med GROUP BY klausul, så der returneres flere rækker – hver repræsenterer en gruppe – med et antal rækker i den gruppe.

Her er et eksempel.

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;

Resultat:

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

Det SÆRLIGE søgeord

Du kan tilføje DISTINCT nøgleord til kun at tælle forskellige værdier. Du kan med andre ord fjerne duplikerede værdier i beregningen.

For eksempler på dette se Sådan fjerner du dubletter fra SQLite Count()-resultater.


  1. Brug af MySQL relationelle databaser på Gentoo

  2. Fjern dublet fra en tabel

  3. Integration af værktøjer til at administrere PostgreSQL i produktion

  4. Nøgleværdipar i PostgreSQL