Sobes.tech
Junior

¿Cuál es la diferencia entre las sentencias WHERE y HAVING en SQL?

sobes.tech AI

Respuesta de la IA

WHERE se aplica antes de la agrupación y filtra las filas del resultado FROM. HAVING se aplica después de la agrupación y filtra los grupos formados con GROUP BY.

Ejemplo:

Supongamos que tenemos una tabla orders con columnas customer_id, order_date y amount.

Encontrar todos los clientes cuya suma total de pedidos supera los 1000:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

Encontrar todos los pedidos con un monto superior a 1000:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Tabla comparativa:

Característica WHERE HAVING
Aplicación A filas individuales antes de agrupar A grupos de filas después de agrupar
Utiliza Columnas de FROM Funciones agregadas y columnas de GROUP BY
Se ejecuta Antes de GROUP BY Después de GROUP BY
Funciones agregadas No puede usarse directamente Puede usarse