Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

Cláusula GROUP BY de MySQL

La cláusula `GROUP BY` de MySQL se utiliza para ordenar datos idénticos en grupos. Se suele emplear con funciones de agregación (como `COUNT`, `SUM`, `AVG`) para realizar cálculos sobre cada grupo de datos.

Utilización

La cláusula `GROUP BY` se utiliza cuando necesitas agregar datos y agrupar filas que tienen los mismos valores en columnas especificadas. Sigue las cláusulas `FROM` y `WHERE` de una consulta SQL.


SELECT column1, aggregate_function(column2)
FROM table_name
[WHERE condition]
GROUP BY column1;

En esta sintaxis, `GROUP BY columna1` organiza el conjunto de resultados en grupos en función de los valores de `columna1`.

Ejemplos

1. Agrupación básica


SELECT department, COUNT(*)
FROM employees
GROUP BY department;

Este ejemplo cuenta el número de empleados de cada departamento, agrupando los datos por la columna `departamento`.

2. Agrupar con varias columnas


SELECT department, job_title, AVG(salary)
FROM employees
GROUP BY department, job_title;

Aquí se calcula el salario medio de cada puesto dentro de cada departamento, agrupando los datos por "departamento" y "puesto".

3. Utilizar GROUP BY con HAVING


SELECT department, SUM(sales)
FROM sales_data
GROUP BY department
HAVING SUM(sales) > 10000;

Este ejemplo agrupa los datos por `departamento` y luego filtra los grupos utilizando `HAVING`, mostrando sólo aquellos departamentos con ventas totales superiores a 10.000.

Consejos y buenas prácticas

  • Garantiza la coherencia de las columnas. Incluye sólo columnas no agregadas en la cláusula `GROUP BY` para evitar errores. Si se incluyen columnas no agregadas en la cláusula `SELECT` sin especificarlas en la cláusula `GROUP BY`, pueden producirse resultados inesperados o errores.
  • Utiliza funciones agregadas. Combina `GROUP BY` con funciones de agregación para resumir los datos de forma eficaz.
  • Ordena los grupos lógicamente. Utiliza `ORDENAR POR` después de `GRUPO POR` para ordenar los resultados y facilitar su lectura.
  • Filtra grupos con HAVING. Utiliza `HAVING` en lugar de `WHERE` para filtrar los resultados basándote en cálculos agregados. Recuerda que `DÓNDE` filtra las filas antes de agruparlas, mientras que `DÓNDE` filtra los grupos después de la agregación.
  • Ten en cuenta el rendimiento. Cuando utilices `GROUP BY` en grandes conjuntos de datos, ten en cuenta el impacto potencial en el tiempo de ejecución de la consulta. Considera estrategias de optimización, como la indexación, para mejorar el rendimiento.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis