Puede ver el comando Count antes de usar el comando GROUP BY aquí. El comando GROUP BY creará grupos en el nombre del campo especificado y contará el número de registros en los grupos. Este es un comando muy útil.
También podemos utilizar el comando WHERE junto con el comando GROUP BY en las tablas Mysql.
SELECT count(*) as total_records, class FROM `student` group by class
Esto mostrará el total de registros en cada clase. Así
total_registros | clase |
1 | Ocho |
3 | Cinco |
9 | Cuatro |
2 | Nueve |
10 | Siete |
7 | Seis |
3 | Tres |
Intentemos obtener el número total de registros de niñas en cada clase utilizando la consulta GROUP BY. Aquí queremos filtrar nuestra consulta sólo para las niñas, así que tenemos que usar una cláusula WHERE para restringir los registros usando el campo sexo. Esta es la consulta.
SELECT class,count( * ) AS total_records FROM `student` WHERE sex='female' GROUP BY class
La salida está aquí
clase | registros_totales |
Cuatro | 5 |
Nueve | 1 |
Siete | 5 |
Seis | 5 |
Tres | 1 |
Registros duplicados
Podemos averiguar los registros duplicados en una tabla utilizando el comando group by. Vamos a crear otra tabla student2_1 utilizando los mismos datos y añadiendo algunos registros duplicados. Aquí está la consulta
SELECT name, COUNT(id) AS no from student2_1 group by name having no > 1
El resultado está aquí .
nombre | no |
---|---|
Arnold | 2 |
Fila de Tade | 3 |
Puedes descargar el volcado SQL de esta tabla stduent2_1 con los datos duplicados añadidos al final de esta página.
Cómo eliminar registros duplicados
Usando group by en un campo de fecha podemos generar una lista sobre el año natural, el año financiero, el mes
Código de ejemplo
Aquí hay un código de ejemplo para entender cómo usar la consulta group by usando el script PHP y PDO.
PARTE II: Intentaremos aplicar el comando group by a más de un campo. Para ello crearemos una nueva tabla y la discutiremos en detalle. Siguiente Parte II
Descarga el SQL DUMP de esta tabla de estudiantes
Descarga el SQL DUMP de la tabla stduent2_1