La función HAVING se utiliza para incluir condiciones con alguna función SQL del tipo SUM, MAX, ..
Como la cláusula WHERE no se puede utilizar con funciones SQL del tipo SUM, MAX, entonces utilizamos en su lugar, HAVING.
Sintaxis HAVING
SELECT columna1, SUM(columna2)
FROM tabla
GROUP BY columna1
HAVING SUM(columna2) < número
Ejemplo de SQL HAVING
Dada la siguiente tabla ‘pedidos’
id | pedido | cliente | precio |
---|---|---|---|
1 | p1 | RUIZ | 100 |
2 | p2 | PEREZ | 300 |
3 | p3 | GOMEZ | 250 |
4 | p4 | RUIZ | 490 |
5 | p5 | GOMEZ | 60 |
SELECT cliente, SUM(precio)
FROM pedidos
GROUP BY cliente
HAVING SUM(precio) > 500
El resultado sera:
cliente | SUM(precio) |
---|---|
RUIZ | 590 |
Solamente el cliente ‘RUIZ’ suma en sus valores para ‘precio’ 490 + 100 = 590 un valor superior a 500
El cliente ‘GOMEZ’ suma en sus valores para la columna ‘precio’ 250 + 60 = 310, que también es menor de 500, y por tanto, no aparece en la tabla resultante.
El cliente ‘PEREZ’ obtiene un valor de 300, y tampoco aparece en la tabla, porque es menor de 500.