Articolo originale: SQL Distinct Statement – How to Query, Select, and Count
In SQL, puoi effettuare una interrogazione sul database e usare la funzione COUNT
per ottenere il numero di righe per un particolare gruppo in una tabella.
In questo articolo, ti mostrerò come usare la funzione COUNT
con alcuni esempi di codice.
Cos'è la funzione COUNT in SQL?
Questa funzione SQL restituirà il conteggio del numero di righe per un dato gruppo.
Ecco la sintassi di base:
SELECT COUNT(nome_colonna) FROM nome_tabella;
L'istruzione SELECT
in SQL serve per ottenere dati da una tabella nel database.
COUNT(nome_colonna)
non includerà i valori NULL
nel conteggio.
Un valore NULL
in SQL fa riferimento a un campo di una tabella in cui non è stata immessa una voce.
Talvolta puoi usare un asterisco *
come argomento della funzione COUNT
.
SELECT COUNT(*) FROM nome_tabella;
In questo caso, la funzione COUNT(*)
restituirà il numero totale di elementi nel gruppo compresi i valori NULL
.
La clausola FROM
in SQL specifica da quale tabella vuoi ottenere i dati.
Puoi anche usare la parola chiave ALL
nella funzione COUNT
.
SELECT COUNT(ALL nome_colonna) FROM nome_tabella;
La parola chiave ALL
conterà tutti i valori nella tabella, duplicati inclusi. Puoi omettere questa parola chiave, in quanto COUNT
usa ALL
nella modalità predefinita, che tu la scriva o no.
Talvolta vedrai la parola chiave DISTINCT
usata con la funzione COUNT
.
SELECT COUNT(DISTINCT nome_colona) FROM nome_tabella;
La parola chiave DISTINCT
serve per contare solo i valori univoci che non sono NULL
. I valori duplicati verranno ignorati.
Come usare la funzione COUNT in SQL
In questo esempio, abbiamo una tabella campers
(che contiene un elenco di campeggiatori), con le colonne id
, name
, age
e counselor
.

Se vogliamo selezionare tutte le righe nella nostra tabella possiamo usare la seguente sintassi:
SELECT COUNT(*) FROM campers;

Come puoi vedere, l'interrogazione ha restituito il numero 12 che rappresenta il numero totale di righe nella tabella campers
.
Usare la clausola WHERE
Possiamo usare la clausola WHERE
per ottenere il numero di righe nelle quali un particolare nominativo si trova nel campo counselor
.
In questo esempio, vogliamo contare il numero di righe che contengono il nome "Ashley" nel campo counselor
.
Per la clausola WHERE
dobbiamo specificare counselor
con il valore "Ashley"
.
WHERE counselor="Ashley";
Ecco l'istruzione completa:
SELECT COUNT(*) FROM campers WHERE counselor="Ashley";
Questo è il risultato restituito:

Se diamo un'occhiata alla nostra tabella possiamo vedere che "Ashley"
appare 4 volte.

Possiamo modificare l'interrogazione per contare quanti campeggiatori hanno 11 anni.
Nella clausola WHERE
dobbiamo specificare la colonna age
(età) con un valore di 11
.
WHERE age=11;
Ecco l'istruzione completa:
SELECT COUNT(*) FROM campers WHERE age=11;
Ecco il risultato:

Se verifichiamo il contenuto della tabella qui sopra, possiamo vedere che ci sono 3 campeggiatori che hanno 11 anni di età.
Come usare la clausola GROUP BY
Possiamo usare la clausola GROUP BY
con la funzione COUNT
per ottenere il conteggio dei campeggiatori raggruppati per età.
Prima selezioniamo la colonna age
e usiamo la funzione COUNT
:
SELECT age, COUNT(*)
Poi specifichiamo il nome della tabella (campers
) e il raggruppamento per il campo age
:
FROM campers GROUP BY age;
Di seguito l'istruzione completa:
SELECT age, COUNT(*) FROM campers GROUP BY age;
Ecco il risultato:

Come usare la clausola ORDER BY
Possiamo modificare il nostro esempio precedente usando la clausola ORDER BY
per elencare il risultato in ordine ascendente rispetto al numero di campeggiatori per gruppo di età.
Ecco il codice per la clausola ORDER BY
:
ORDER BY COUNT(*);
Aggiungiamo questa clausola alla fine dell'istruzione SELECT
in questo modo:
SELECT age, COUNT(*) FROM campers GROUP BY age ORDER BY COUNT(*);
Ecco il risultato dell'istruzione qui sopra:

Se avessimo voluto presentare i dati in ordine discendente, avremmo dovuto usare la parola chiave DESC
.
Ecco il codice per la clausola ORDER BY
usando la parola chiave DESC
:
ORDER BY COUNT(*) DESC;
Questo è il codice completo:
SELECT age, COUNT(*) FROM campers GROUP BY age ORDER BY COUNT(*) DESC;
Il nuovo risultato è questo:

Come usare la clausola HAVING
Possiamo usare la clausola HAVING
per specificare una condizione per la funzione COUNT
.
Possiamo modificare il codice per mostrare solo il risultato del raggruppamento per età quando il valore è minore di 5.
Il codice per la clausola HAVING
è questo:
HAVING COUNT(*)<5;
L'istruzione completa è questa:
SELECT age, COUNT(*) FROM campers GROUP BY age HAVING COUNT(*)<5;
Otteniamo il seguente risultato:

Possiamo vedere che la riga contenente il conteggio dei campeggiatori di 12 anni non compare più, in quanto il valore del conteggio è maggiore di 5.
Conclusione
In SQL puoi interrogare un database usando la funzione COUNT
per ottenere il numero di righe per un particolare gruppo in una tabella.
La sintassi base è:
SELECT COUNT(nome_colonna) FROM nome_tabella;
COUNT(column_name)
non comprende valori NULL
nel conteggio.
Un valore NULL
in SQL si riferisce a un campo di una tabella in cui non è stato immessa una voce.
Talvolta puoi usare un asterisco *
come argomento della funzione COUNT
.
SELECT COUNT(*) FROM nome_tabella;
La funzione COUNT(*)
restituirà il conteggio del numero totale di elementi in un dato gruppo compresi i valori NULL
.
Spero che tu abbia apprezzato questo articolo, ti auguro buona fortuna per il tuo viaggio all'interno di SQL.