Escolar Documentos
Profissional Documentos
Cultura Documentos
OBJETIVOS:
MARCO TEÓRICO:
FUNCIONES DE AGREGACIÓN
Las funciones de agregación son funciones que toman una colección (un conjunto o multiconjunto) de valores como
entrada y devuelven un solo valor. SQL ofrece cinco funciones de agregación incorporadas:
Media: avg
Mínimo: min
Máximo: max
Total: sum
Recuento: count
Los datos de entrada para sum y avg deben ser una colección de números, pero los otros operadores también
pueden operar sobre colecciones de datos de tipo no numérico como las cadenas de caracteres.
EJEMPLO:
El resultado de esta consulta es una relación con un único atributo, que contiene una sola tupla con un valor
numérico correspondiente al saldo medio de la sucursal de Navacerrada. Opcionalmente se puede dar un nombre al
atributo de la relación resultante, utilizando la cláusula as.
Existen circunstancias en las cuales sería deseable aplicar las funciones de agregación no sólo a un único conjunto de
tuplas sino también a un grupo de conjuntos de tuplas; esto se especifica en SQL mediante la cláusula group by. El
atributo o atributos especificados en la cláusula group by se usan para formar grupos. Las tuplas con el mismo valor
en todos los atributos de la cláusula group by constituyen un mismo grupo.
EJEMPLO:
EJEMPLO:
Con frecuencia se usa la función de agregación count para contar el número de tuplas de una relación.
La notación de SQL para esta función es count (*). Por tanto, para determinar el número de tuplas de la relación
cliente hay que escribir
Se dan casos en los cuales es necesario eliminar los valores duplicados antes de calcular una función de agregación.
Si se desea eliminar los valores duplicados hay que utilizar la palabra clave distinct en la expresión de agregación.
EJEMPLO:
Considérese la consulta “Determinar el número de impositores de cada sucursal”. En este caso cada impositor sólo
se debe contar una vez, independientemente del número de cuentas que pueda tener. La consulta se formula del
modo siguiente:
SQL no permite el uso de distinct con count (*). Sí es legal el uso de distinct con max y min, aunque el resultado no
cambia. Se puede utilizar la palabra clave all en lugar de distinct para especificar la conservación de los valores
duplicados pero, como all es la opción predeterminada, no hace falta hacerlo.
A veces resulta útil establecer una condición que se aplique a los grupos en vez de a las tuplas.
EJEMPLO:
Puede que sólo estemos interesados en las sucursales en las que el saldo medio de las cuentas sea superior a 1.200
e. Esta condición no se aplica a una sola tupla, sino a cada grupo creado por la cláusula group by. Para expresar este
tipo de consultas se utiliza la cláusula having de SQL. SQL aplica
los predicados de la cláusula having una vez formados los grupos, de modo que se puedan usar las funciones de
agregación. Esta consulta se expresa en SQL del modo siguiente:
Si en la misma consulta aparecen una cláusula where y una cláusula having, SQL aplica primero el predicado de la
cláusula where. Las tuplas que satisfacen el predicado de la cláusula where se dividen luego en grupos según la
cláusula group by. Después se aplica la cláusula having (si existe) a cada grupo; SQL elimina los grupos que no
satisfacen el predicado de la cláusula having. La cláusula select utiliza los grupos restantes para generar las tuplas del
resultado de la consulta.
Para ilustrar el uso conjunto de la cláusula where y la cláusula having en la misma consulta,
EJEMPLO:
“Determinar el saldo medio de cada cliente que vive en Peguerinos y tiene, como
mínimo, tres cuentas”.
FUNCIONES DE AGREGACIÓN
Las funciones de agregación en SQL nos permiten efectuar operaciones sobre un conjunto de resultados, pero
devolviendo un único valor agregado para todos ellos. Es decir, nos permiten obtener medias, máximos, etc.… sobre
un conjunto de valores.
Las funciones de agregación básicas que soportan todos los gestores de datos son las siguientes:
DESARROLLO DE LA PRACTICA
1. Consultar los nombres de clientes y totales adquiridos por cada uno de ellos
select Customers.CustomerID , count([Order Details].UnitPrice) as Total from Customers, Orders, [Order Details]
where Customers.CustomerID=Orders.CustomerID and Orders.OrderID=[Order Details].OrderID group by
Customers.CustomerID
2. Consultar los nombre de los productos y suma de cantidades adquiridas por cada producto
select Customers.CustomerID , count([Order Details].Quantity) as Total from Customers, Orders, [Order Details]
where Customers.CustomerID=Orders.CustomerID and Orders.OrderID=[Order Details].OrderID group by
Customers.CustomerID having count([Order Details].Quantity)>10
CONCLUSIONES Y RECOMENDACIONES:
BIBLIOGRAFÍA:
Daniel Santiago Martínez. (2012). T2 - Modelo relacional. 03/05/2017, de slideshare Sitio web:
https://es.slideshare.net/DaniSantia/t2-modelo-relacional
ABRAHAM SILBERSCHATZ, HENRY F. KORTH, S. SUDARSHAN. (2006). Fundamentos de Bases de Datos.
España: McGRAW-HILL.
NA. (2016). ¿Qué es un proveedor?. 03/05/2017, de Reviso Sitio web: https://www.reviso.com/es/que-es-
un-proveedor
Julián Pérez Porto y Ana Gardey. (2011). Orden compra. 03/05/2017, de Definicio.de Sitio web:
http://definicion.de/orden-de-compra/
SQL Server Ya. (NA). Exists y No Exists. 24/05/2017, de Tutoriales ya Sitio web:
http://www.tutorialesprogramacionya.com/sqlserverya/temarios/descripcion.php?cod=102&punto=96&inic
io=
campusMVP . (21 julio 2014 09:00). Fundamentos de SQL: Agrupaciones y funciones de agregación.
24/05/2017, de CampusMVP Sitio web: https://www.campusmvp.es/recursos/post/Fundamentos-de-SQL-
Agrupaciones-y-funciones-de-agregacion.aspx