En este nuevo post vamos a ver la sentencia de MySQL GROUP BY, su misión es agrupar los resultados idénticos devueltos de una consulta SELECT.
Otras sentencias de MySQL que os pueden ser útiles:
- ALTER TABLE
- UPDATE y DELETE
- CLÁUSULAS ORDER BY y LIMIT
Sintaxis de MySQL GROUP BY
Veamos la sintaxis extraída de su web oficial:
1 2 3 |
SELECT nombre_columnas FROM nombre_tabla GROUP BY nombre_columnas; |
Repasamos la sintaxis:
- Seleccionamos las columnas a consultas en la sentencia SELECT.
- Seleccionamos la tabla donde realizamos la consulta.
- Con GROUP BY determinamos la agrupación por una o varias columnas con un mismo valor en la tabla consultada.
- Esta cláusula se puede/suele usar junto con HAVING cuando necesitamos que los resultados agrupados deban cumplir ciertas condiciones que veremos en los ejemplos posteriores. Por lo que no se puede usar la cláusula WHERE con la columna agrupada por GROUP BY, se tiene que hacer con HAVING.
Ejemplos de MySQL GROUP BY
Veamos varios ejemplos para ver la funcionalidad:
1 2 3 |
SELECT nacionalidad_empleado FROM empleados GROUP BY nacionalidad_empleado |
Con el ejemplo superior estamos seleccionando con SELECT la ‘nacionalidad_empleado’ de la tabla empleados, para agrupar los resultados por nacionalidad del empeado. El resultado será un listado de nacionalidades de los empleados.
1 2 3 |
SELECT COUNT(nombre_empleados), nacionalidad_empleado FROM empleados GROUP BY nacionalidad_empleado |
En este nuevo ejemplo estamos contado con COUNT() el número de nombres, la nacionalidad del empleado de la tabla empeados… para posteriormente agruparlos por la nacionalidad del empleado. El resultado mostrará el número de empleados por nacionalidad: Ejemplo 3 México, 4 Argentina, 3 España…