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 |