Curso de PHP

Estás en: MySql y SQL : Group By y Having

Group By y Having

Group by

Agrupa registros. Combina los registros devueltos que tienen valor idéntico en uno solo.

Ejemplo

El siguiente ejemplo agrupa por empleado. Todos los que tengan el mismo nombre, se quedan en un único registro

SELECT empleado, MAX(sueldo) AS Sueldo_Max
FROM empleados
GROUP BY empleado

Having

Equivale a Where, pero se usa en los select en los que hacemos agrupaciones, porque si en la condición entra alguno de los campos por los que agrupamos o utilizan función de agregado, el where da error.

Cuando hay que poner una condición que incluye uno de los campos agrupados o generado (máximo, mínimo...), en vez de WHERE, se pone HAVING

Ejemplo

SELECT empleado, MAX(sueldo) AS Sueldo_Max
FROM empleados
GROUP BY empleado
HAVING Max (sueldo) > 1000 ó
HAVING Sueldo_Max > 1000