SQL GROUP BY Command

, Author

Puoi vedere il comando Count prima di usare il comando GROUP BY qui. Il comando GROUP BY crea gruppi nel nome del campo specificato e conta il numero di record nei gruppi. Questo comando è molto utile.
Possiamo anche usare il comando WHERE insieme al comando GROUP BY nelle tabelle Mysql.

SELECT count(*) as total_records, class FROM `student` group by class

Questo mostrerà i record totali in ogni classe. Come questo

total_records classe
1 Eight
3 Cinque
9 Quattro
2 Nove
10 Sette
7 Sei
3 Tre

Proviamo a ottenere il numero totale di record di ragazze in ogni classe usando la query GROUP BY. Qui vogliamo filtrare la nostra query solo per le ragazze, quindi dobbiamo usare una clausola WHERE per limitare i record usando il campo sex. Ecco la query.

SELECT class,count( * ) AS total_records FROM `student` WHERE sex='female' GROUP BY class

L’output è qui

classe totale_record
quattro 5
nove 1
sette 5
Sei 5
Tre 1

Registri duplicati

Possiamo trovare i record duplicati in una tabella usando il comando group by. Creeremo un’altra tabella student2_1 usando gli stessi dati e aggiungendo alcuni record duplicati. Ecco la query

SELECT name, COUNT(id) AS no from student2_1 group by name having no > 1

L’output è qui.

nome no
Arnold 2
Tade Row 3

È possibile scaricare il dump SQL di questa tabella stduent2_1 con l’aggiunta di dati duplicati alla fine di questa pagina.

Come cancellare i record duplicati

Utilizzando il group by su un campo data possiamo generare una lista sull’anno solare, anno finanziario, mese per mese

Codice di esempio

Ecco un codice di esempio per capire come usare il group by query usando lo script PHP e PDO.
PARTE II: Proveremo ad applicare il comando group by a più di un campo. Per questo creeremo una nuova tabella e la discuteremo in dettaglio. Prossima Parte II
Carica il DUMP SQL di questa tabella studente
Carica il DUMP SQL della tabella stduent2_1

Questo articolo è stato scritto dal team di plus2net.com.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.