PHP y MySQL

MySQL GROUP BY: Agrupación de los resultados de una consulta

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:

Sintaxis de MySQL GROUP BY

Veamos la sintaxis extraída de su web oficial:

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:

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.

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…

compartir
Publicado por
Aner Barrena