Enunciado HAVING de SQL
- Página anterior SQL Group By
- Página siguiente SQL ucase()
Cláusula HAVING
La razón por la que se agrega la cláusula HAVING en SQL es que la palabra clave WHERE no se puede usar con funciones de agregación.
Sintaxis de SQL HAVING
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value
Ejemplo de SQL HAVING
Tenemos la siguiente tabla "Orders":
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/12/29 | 1000 | Bush |
2 | 2008/11/23 | 1600 | Carter |
3 | 2008/10/05 | 700 | Bush |
4 | 2008/09/28 | 300 | Bush |
5 | 2008/08/06 | 2000 | Adams |
6 | 2008/07/21 | 100 | Carter |
Ahora, queremos encontrar clientes cuyos montos totales de pedidos sean inferiores a 2000.
Usamos la siguiente sentencia SQL:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000
Los resultados de la consulta son similares:
Customer | SUM(OrderPrice) |
---|---|
Carter | 1700 |
Ahora queremos encontrar que el cliente "Bush" o "Adams" tenga un monto total de pedidos superior a 1500.
Añadimos una cláusula WHERE común en la sentencia SQL:
SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500
Resultados de la consulta:
Customer | SUM(OrderPrice) |
---|---|
Bush | 2000 |
Adams | 2000 |
- Página anterior SQL Group By
- Página siguiente SQL ucase()