Funciones de agregación Son funciones que toman una colección de valores como entrada y producen un único valor de salida. SQL proporciona cinco funciones de agregación primitivas:
• avg: media aritmética de un atributo o una expresión numérica
• min: mínimo de un atributo o expresión numérica
• max: máximo de un atributo o expresión numérica
• sum: suma total de atributos o expresiones numéricas
• count (*): contador de tuplas • count (distinct): contador de tuplas parcial, no tiene en cuenta
Todos los operadores, excepto avg y sum, pueden operar con números y cadenas de caracteres. La función de agregación se coloca en la línea select. La cláusula group by se utiliza cuando las funciones de agregación se aplican a un grupo de conjuntos de tuplas, y la cláusula having se utiliza para poner una condición a los grupos. Si en una misma consulta aparece where y having, se aplica
Por ejemplo, obtener el saldo medio de cada cliente que vive en Madrid y tiene como mínimo tres cuentas:
select impositor.nombre-cliente, avg (saldo)
from impositor, cuenta, cliente
where impositor.número-cuenta = cuenta.número-cuenta and
impositor.nombre-cliente = cliente.nombre-cliente and
ciudad-cliente = “Madrid”
group by impositor.nombre-cliente
having count (distinct impositor.número-cuenta) >= 3
Operaciones sobre conjuntos
Union: corresponde a la unión de conjuntos. Por ejemplo, para encontrar todos los clientes que poseen un préstamo, una cuenta o ambas cosas (select nombre-clientefrom impositor)union(selectnombre-clientefrom prestatario)
La operación union elimina duplicados automáticamente. Para conservarlos se utiliza union all.
Intersect: corresponde a la intersección de conjuntos. También elimina duplicados, y se utiliza intersect all para que no los elimine.
Minus: equivale a la diferencia de conjuntos. Para conservar los duplicados se utiliza minus all.
ing.eddy