Sobes.tech
Junior — Middle

¿Cuál es la diferencia entre la condición WHERE y HAVING al trabajar con consultas SQL?

sobes.tech AI

Respuesta de la IA

WHERE y HAVING son condiciones de filtrado en SQL, pero se aplican en diferentes etapas del procesamiento de datos.

  • WHERE filtra las filas antes de la agrupación. Se usa para seleccionar registros a nivel de datos originales.
  • HAVING filtra los grupos formados por el operador GROUP BY. Se aplica después de la agregación.

Ejemplo:

SELECT departamento, COUNT(*) as cantidad_empleados
FROM empleados
WHERE salario > 50000  -- filtramos empleados con salario > 50000
GROUP BY departamento
HAVING COUNT(*) > 10      -- seleccionamos departamentos 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 después se seleccionan solo aquellos departamentos donde el número de empleados es mayor a 10 (HAVING).