Índice

Agrupar los datos

A veces, puede ser necesario calcular un valor para un nivel de agrupamiento:

  • Volumen de negocios por región.

  • Salario mínimo por provincia.

Para este tipo de consulta, pueden utilizarse funciones de agregación (SUM, AVG, etc.) y agrupar los datos mediante la cláusula GROUP BY; como complemento, el resultado final, tras la agrupación, puede restringirse con la cláusula HAVING.

Sintaxis

SELECT expresión[,...] | * 
FROM nombre_tabla 
[WHERE condiciones] 
GROUP BY expresión [ASC | DESC] [,...] 
[HAVING condiciones] 
[ORDER BY expresión [ASC | DESC][,...]] 
[LIMIT [offset,] número_filas]

La cláusula GROUP BY se intercala entre las cláusulas WHERE y ORDER BY (si están presentes). Especifica las expresiones utilizadas para efectuar el agrupamiento.

expresión puede ser:

  • Una columna.

  • Una expresión basada en columnas.

  • Un alias de columna.

  • Un número correspondiente a la posición de una expresión de la cláusula SELECT (sintaxis desaconsejada y obsoleta).

De manera predeterminada, el resultado de la consulta se muestra en orden creciente en las diferentes expresiones de la cláusula GROUP BY; la ordenación de cada nivel de agrupamiento puede definirse explícitamente con las opciones ASC y DESC. Una ordenación completamente diferente puede especificarse mediante la cláusula ORDER BY. Desde la versión 5.7, se recomienda no basarse en el orden implícito de la cláusula ...