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.

Screen-Shot-2021-09-30-at-1.35.37-AM

Se vogliamo selezionare tutte le righe nella nostra tabella possiamo usare la seguente sintassi:

SELECT COUNT(*) FROM campers;
Screen-Shot-2021-09-30-at-1.37.18-AM

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:

Screen-Shot-2021-09-30-at-1.47.03-AM

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

Screen-Shot-2021-09-30-at-1.35.37-AM

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:

Screen-Shot-2021-09-30-at-1.50.46-AM

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:

Screen-Shot-2021-09-30-at-2.23.35-AM

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:

Screen-Shot-2021-09-30-at-2.28.18-AM

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:

Screen-Shot-2021-09-30-at-2.31.52-AM

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:

Screen-Shot-2021-09-30-at-2.48.28-AM

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.