TEMA 24 - OCW UPM

Anuncio
TEMA 24: CONSULTAS RESUMEN
OBJETIVOS DEL TEMA:
•
Realizar consultas basadas en datos calculados globalmente dentro de
una tabla
1.- CONSULTAS RESUMEN:
Es usual querer saber cuantos pedidos tiene un cliente en un periodo de
tiempo, cuál ha sido el promedio de ventas de un proveedor en un año, etc,
SQL proporciona una serie de operadores que permiten realizar estas
operaciones. Los Operadores Agregados son :
•
AVG :
Promedio de los valores seleccionados
•
COUNT :
Total de valores seleccionados
•
SUM :
Suma de valores seleccionados
•
MIN :
El valor mínimo de los valores seleccionados
•
MAX :
El valor máximo de los valores seleccionados
que toman el nombre de un atributo como argumento. El valor del operador
agregado se calcula sobre todos los valores de la columna especificada en la
tabla completa. Si se especifican grupos en la consulta, el cálculo se hace sólo
sobre los valores de cada grupo, es decir SQL nos permite particionar las
tuplas de una tabla en grupos. En estas condiciones, los operadores agregados
descritos antes pueden aplicarse a los grupos (es decir, el valor del operador
agregado no se calculan sobre todos los valores de la columna especificada,
sino sobre todos los valores de un grupo. El operador agregado se calcula
individualmente para cada grupo).
El particionamiento de las tuplas en grupos se hace utilizando las
palabras clave GROUP BY seguidas de una lista de atributos que definen los
grupos. Si tenemos GROUP BY A1, ..., Ak habremos particionado la relación
en grupos, de tal modo que dos tuplas son del mismo grupo si y sólo si tienen
el mismo valor en sus atributos A1, ..., Ak.
En el siguiente ejemplo vamos a mostrar para cada cliente el número
total de pedidos, el importe total, el importe medio de cada pedido, así como el
pedido de mayor importe y menor importe. La consulta sería;
SELECT CLIENTE.APELLIDOS, COUNT( PEDIDO.IMPORTE )
TOTAL_PEDIDOS, SUM( PEDIDO.IMPORTE ) SUMA_IMPORTES, AVG(
CAST(PEDIDO.IMPORTE AS FLOAT)) PROMEDIO,
MAX(
PEDIDO.IMPORTE ) MAXIMO, MIN( PEDIDO.IMPORTE) MINIMO
FROM CLIENTE
LEFT OUTER JOIN PEDIDO ON (PEDIDO.DNI = CLIENTE.DNI)
GROUP BY CLIENTE.APELLIDOS
ORDER BY CLIENTE.APELLIDOS;
APELLIDOS
---------------ARIAS FERNANDEZ
JIMENO DIAZ
JIMENO ZOLA
PEREZ GARCIA
PEREZ LOPEZ
ROMERO ALONSO
SEBASTIAN YUSTE
TOTAL_PEDIDOS
------------1
1
0
3
0
1
2
SUMA_IMPORTE
-----------37.0
88.25
PROMEDIO
-------37.0
88.25
MAXIMO
-----37.0
88.25
MINIMO
-----37.0
88.25
389.78
129.9266
201.55
65.23
125.12
234.58
125.12
117.29
125.12
150.38
125.12
84.2
En nuestro ejemplo, obtenemos siete grupos (Por apellidos) y ahora
podemos aplicar el operador agregado COUNT para cada grupo, obteniendo el
resultado total de la consulta dada anteriormente.
Nótese que para el resultado de una consulta utilizando GROUP BY y
operadores agregados para dar sentido a los atributos agrupados, debemos
primero obtener la lista objetivo. Los demás atributos que no aparecen en la
cláusula GROUP BY se seleccionarán utilizando una función agregada. Por
otro lado, no se pueden utilizar funciones agregadas en atributos que aparecen
en la cláusula GROUP BY.
RESUMEN LECCIÓN 24
Es habitual realizar operación que engloben resumen dentro de una
selección de datos, para esto SQL proporciona las palabras:
•
AVG :
Promedio de los valores seleccionados
•
COUNT :
Total de valores seleccionados
•
SUM :
Suma de valores seleccionados
•
MIN :
El valor mínimo de los valores seleccionados
•
MAX :
El valor máximo de los valores seleccionados
Descargar