Il count()
di SQLite La funzione può essere utilizzata per restituire il numero di righe in un set di risultati.
Può anche essere utilizzato per restituire il numero di volte in cui una determinata colonna non è NULL nel set di risultati.
Può essere utilizzato in due modi. Se inserisci l'asterisco (*
) carattere jolly, restituirà il numero totale di righe nel gruppo. Se fornisci il nome di una colonna, restituirà il numero di volte in cui quella colonna non è NULL.
Sintassi
La sintassi è questa:
count(X)
count(*)
Quindi in questo caso, X
potrebbe essere il nome di una colonna e l'asterisco (*
) viene utilizzato il carattere jolly per specificare il numero totale di righe nel gruppo.
Esempio:conteggio(*)
Ecco un esempio di base per dimostrare la sintassi dell'asterisco (*) per restituire il numero di righe in una tabella.
SELECT count(*) FROM Customer;
Risultato:
59
Ho eseguito questa query sul database di esempio Chinook, quindi risulta che ci sono 59 righe nel Cliente tabella.
Esempio:conteggio(X)
In questo esempio passo il nome di una specifica colonna della tabella.
SELECT count(Fax) FROM Customer;
Risultato:
12
In questo caso, il Fax la colonna ha 12 valori non NULL.
In altre parole, 47 righe contengono un valore NULL nel Fax colonna.
Utilizzo di una clausola WHERE
Il risultato di count()
viene calcolato dopo qualsiasi WHERE
clausole.
SELECT count(Fax)
FROM Customer
WHERE CustomerId <= 5;
Risultato:
2
In questo caso, nel Fax erano presenti solo due valori diversi da NULL colonna all'interno del set di risultati.
Ecco come appaiono i risultati con le colonne restituite (e senza usare count()
funzione).
SELECT CustomerId, Fax
FROM Customer
WHERE CustomerId <= 5;
Risultato:
CustomerId Fax ---------- ------------------ 1 +55 (12) 3923-5566 2 3 4 5 +420 2 4172 5555
Quindi possiamo vedere che solo le righe 1 e 5 hanno valori non NULL nel Fax colonna.
Utilizzo di una clausola LIMIT
Il risultato non viene calcolato dopo alcun LIMIT
clausola.
SELECT count(Fax)
FROM Customer
LIMIT 5;
Risultato:
12
Ma puoi invece fare qualcosa del genere:
SELECT count(Fax)
FROM (SELECT Fax FROM Customer
LIMIT 5);
Risultato:
2
Risultati raggruppati
Un pratico caso d'uso per count()
è usarlo insieme a GROUP BY
clausola, in modo che vengano restituite più righe, ciascuna rappresentante un gruppo, con un conteggio delle righe in quel gruppo.
Ecco un esempio.
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;
Risultato:
Name count(al.Title) --------------- --------------- David Coverdale 1 Deep Purple 11 Def Leppard 1 Dennis Chambers 1 Djavan 2 Dread Zeppelin 1
La parola chiave DISTINCT
Puoi aggiungere il DISTINCT
parola chiave per contare solo valori distinti. In altre parole, puoi rimuovere i valori duplicati nel calcolo.
Per esempi di ciò, vedere Come rimuovere i duplicati dai risultati di SQLite Count().