Cláusula Having en sql

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.


Publicar un comentario

0 Comentarios