Sobes.tech
Junior — Middle

¿En qué se diferencian las condiciones HAVING y WHERE al construir consultas SQL?

sobes.tech AI

Respuesta de la IA

En SQL, las condiciones WHERE y HAVING sirven para filtrar datos, pero se aplican en diferentes etapas del procesamiento de la consulta:

  • WHERE filtra las filas antes de la agrupación. Se usa para limitar el conjunto de datos que serán agregados.
  • HAVING filtra los grupos después de aplicar funciones de agregación (por ejemplo, SUM, COUNT).

Ejemplo:

SELECT departamento, COUNT(*) as cantidad_empleados
FROM empleados
WHERE salario > 50000       -- filtrado por salario antes de agrupar
GROUP BY departamento
HAVING COUNT(*) > 10;        -- filtrado de grupos con más de 10 empleados

Aquí primero se seleccionan empleados con salario superior a 50000 (WHERE), luego los datos se agrupan por departamentos, y solo los departamentos con más de 10 empleados pasan el filtro HAVING.