3.3.4.8 Conteggio delle righe
I database vengono spesso utilizzati per rispondere alla domanda: “Quanto spesso si verifica un determinato tipo di dati in una tabella?”Ad esempio, potresti voler sapere quanti animali hai, o quanti animali ha ogni proprietario, o potresti voler eseguire vari tipi di operazioni di censimento sui tuoi animali.
Contare il numero totale di animali che hai è la stessa domanda di ” Quante righe ci sono nella tabellapet
?,”perché c’è un record per animale. COUNT(*)
conta il numero di righe, quindi la query per contare i tuoi animali è simile a questa:
In precedenza, hai recuperato i nomi delle persone che possedevano animali domestici. Puoi usare COUNT()
se vuoi scoprire quanti animali ha ogni proprietario:
La query precedente usaGROUP BY
per raggruppare tutti i record per ogniowner
., L’uso di COUNT()
in combinazione conGROUP BY
è utile per caratterizzare i dati in vari raggruppamenti. Gli esempi seguenti mostrano diversi modi per eseguire operazioni di censimento degli animali.
Numero di animali per ogni specie:
Numero di animali per ogni sesso:
(In questo output NULL
indica che il sesso è sconosciuto.,)
Numero di animali per combinazione di specie e sesso:
Non è necessario recuperare un’intera tabella quando si utilizza COUNT()
. Ad esempio, la query precedente, quando eseguita solo su cani e gatti, ha il seguente aspetto:
Oppure, se si desidera il numero di animali per sesso solo per animali di cui è noto il sesso:
Se si nominano colonne da selezionare oltre al valore COUNT()
, dovrebbe essere presente una clausola GROUP BY
che nomina quelle stesse colonne. In caso contrario, si verifica quanto segue:
Vedere anche la Sezione 12.20.,3, “Gestione MySQL di GROUP BY”. Vedere Sezione 12.20.1, “Descrizioni delle funzioni aggregate”per informazioni sul comportamento COUNT(
e relative ottimizzazioni.expr
)