La Cláusula having sql se utiliza para incluir condiciones de funciones agregadas que la cláusula WHERE no admite como son : COUNT, SUM , AVG.
Sintaxis de HAVING
SELECT NombreColumna FROM NombreTabla GROUP BY NombreColumna HAVING Condicion ORDER BY NombreColumna
Ejemplos de la cláusula having sql
A continuación vamos a realizar algunos ejemplos de la cláusula having utilizando la tabla Productos.
para el ejemplo vamos a seleccionar los productos por marcas y que no excedan más de 5 registros, veamos la consulta.
SELECT NombreProducto,Marca FROM SivProductos GROUP BY Marca,NombreProducto HAVING COUNT(Marca)<= 5
A continuación vamos a ejecutar la consulta en SQL Server Management Studio:
Como podemos observar la consulta nos agrupa los productos por marca y nos hace un conteo de los primeros 5 registros agrupados.
Si nosotros realizáramos esta consulta utilizando la cláusula WHERE nos arrojaría un mensaje de error ya que que esta no admite la combinación con funciones.
HAVING SQL también podemos utilizarla para generar consultas en tablas relacionales. Veamos un ejemplo Seleccionaremos los registros de productos que han generado más de 10 detalles de ventas.
SELECT NombreProducto,COUNT(SD.objVentasID) AS DETALLE FROM SivProductos AS SP INNER JOIN SfaVentasDetalles as SD ON SD.objProductoID = SP.ProductoID GROUP BY NombreProducto HAVING COUNT(Marca)>= 10 ORDER BY SP.NombreProducto
Vamos a ejecutar la consulta para obtener el resultado :
La cláusula Having SQL nos permite realizar consulta con funciones que no podemos realizar con WHERE.
0 Comentarios