Funciones de agregado

Funciones de agregado en SQL Server

Devuelven estadísticas usando campos numéricos de las tablas.  Solamente Count se puede usar con campos que no son numéricos o se puede usar asterisco (*).

Las funciones de agregado se usan generalmente para obtener información desde varias tablas (Ver Joins) haciendo cálculos en base a un detalle, por ejemplo, poder calcular la cantidad de facturas o boletas generadas por un empleados, el total de compras de un clientes, el promedio de monto de los documentos de compra de los proveedores, etc

Las funciones de agregado son las siguientes:

AVGDevuelve el Promedio de los valores
MINDevuelve el valor Mínimo
SUMSuma los valores
COUNTCuenta la cantidad de celdas
STDEVDevuelve la desviación estándar Muestral
STDEVPDevuelve la desviación estándar Poblacional
VARDevuelve la Varianza muestral
VARPDevuelve la Varianza Poblacional
MAXDevuelve el valor Máximo

Ejercicios

— Usando Northwind
use Northwind
go

— El promedio de Precios de los productos
select AVG(P.UnitPrice) As Promedio from Products as P
go
— El Precio mas alto de los productos
select Max(P.UnitPrice) As ‘Precio mayor’ from Products as P
go

— El Precio mas bajo de los productos
select Min(P.UnitPrice) As ‘Precio menor’ from Products as P
go

— Cantidad de Productos
select Count(*) As ‘Cantidad de Productos’ from Products as P
go

— Cantidad de Productos en Stock
select Sum(P.UnitsInStock) As ‘Productos en Stock’ from Products as P
go

— Valor total de los Productos en Stock
select Sum(P.UnitsInStock * P.UnitPrice) As ‘Productos en Stock’ from Products as P
go

— Monto total vendido en el año 1997 y la cantidad de órdenes
select Sum(O.Freight) As ‘Monto total’, COUNT(O.OrderID) As ‘Cantidad’
from Orders As O where YEAR(O.OrderDate) = 1997
go

— Stock mas alto y mas bajo de productos
select Max(P.UnitsInStock) As ‘Cantidad mas alta de Productos en Stock’,
Min(P.UnitsInStock) As ‘Cantidad mas baja de Productos en Stock’
from Products as P
go

— Cantidad vendida del producto con código 23
select sum(Od.Quantity) As ‘Unidades Producto 23’
from [Order Details] As OD where ProductID = 23
go

— Cantidad de órdenes generadas y monto total vendido del Empleado con código 3
select Count(O.OrderID) As ‘Cantidad’, SUM(O.Freight) As ‘Monto Total’
from Orders As O where EmployeeID = 3
go