Sei sulla pagina 1di 6

PRACTICA 9:

Nombre de la Práctica: Funciones agregadas en consultas simples y en


agrupamientos

Objetivo Específico:
El alumno aplicará las funciones agregadas para hacer consultas complejas en
sus bases de datos

Introducción:

Las funciones agregadas permiten ser usadas para obtener valores sumarizados.
Se aplican agregados a conjuntos de renglones: a todos los renglones de una
tabla, a algunos renglones especificados por una cláusula where, o a grupos de
renglones seleccionados con una cláusula group by. No importa cómo se
estructuran los conjuntos, se obtiene un valor por cada conjunto de renglones.

Tomando en cuenta que lo indicado entre corchetes es opcional, los formatos de


las funciones agregadas son:

sum ( [distinct] expresión ) Calcula la suma del total de valores [distinct]


en la expresión numérica.

avg ( [distinct] expresión ) Calcula el promedio de los valores [distinct]


no nulos en la expresión.

count ( [distinct] expresión ) Calcula el número de los valores [distinct]


en la expresión numérica.

count ( * ) Calcula el número de renglones


seleccionados

max ( expresión ) Calcula el valor mas grande en la expresión

min ( expresión ) Calcula el valor mas pequeño en la expresión


Diferencia entre count y count(*).- Count toma una expresión (un nombre de
columna simple o una combinación más compleja de elementos) como un
argumento y descubre todas las ocurrencias no nulas de ese argumento. Count(*)
siempre toma un asterisco como el argumento y cuenta todos los renglones
aunque alguna columna particular tenga valores nulos.

Sumarización de datos.- Hay varios elementos que permiten generar reportes que
sumaricen información. Algunos estatutos SQL que permiten eso son: cube, rollup
y compute; los cuales están asociados con la cláusula group by.

Cube: Genera un conjunto resultado que es un cubo multidimensional. Un cubo


multidimensional es una expansión de datos de hechos, o datos que registran
eventos individuales. La expansión se base en columnas que el usuario quiere
analizar. A éstas columnas se les llama dimensiones. El cubo es un conjunto
resultado que contiene una tabulación en cruz de todas las posibles
combinaciones de las dimensiones.

Rollup: Es útil para generar reportes que contienen subtotales y totales, genera un
conjunto resultado que es similar al generado por el operador cube.

Las diferencias entre el cube y el rollup son: cube genera un conjunto resultado
que muestra agregados para todas las combinaciones de valores en las columnas
seleccionadas, y, rollup genera un conjunto resultado que muestra agregados
para una jerarquía de valores en las columnas seleccionadas.

Compute: Genera totales que aparecen al final de cada conjunto resultado,


cuando se usa con by, genera subtotales en el conjunto resultado.

Ejercicio 1: Funciones Agregadas

1.- Ejecute el Sql Server Management Studio y seleccione la base de datos


ventas

2.- Escriba y ejecute


select sum(monto)
from facturas

Esta consulta calcula la suma total de los valores de la columna monto de la tabla
facturas. Si hay valores nulos no los considera en el calculo.

3.- Escriba y ejecute

select avg(monto)
from facturas

Esta consulta calcula el promedio de los valores de la columna monto de la tabla


facturas. Si hay valores nulos no los considera en el calculo.

4.- Escriba y ejecute

select min(monto)
from facturas

Esta consulta calcula el valor mas pequeño de los valores de la columna monto de
la tabla facturas. Si hay valores nulos no los considera en el calculo.

5.- Escriba y ejecute

select max(monto)
from facturas

Esta consulta calcula el valor mas pequeño de los valores de la columna monto de
la tabla facturas. Si hay valores nulos no los considera en el calculo.

6.- Escriba y ejecute

select min(monto)
from facturas
Esta consulta calcula el valor mas pequeño de los valores de la columna monto de
la tabla facturas. Si hay valores nulos no los considera en el calculo.

7.- Escriba y ejecute

insert into productos values ('MM400','prueba',0,0,null)

Se inserta una nueva tupla con un valor nulo en la columna precio. Verifique este
valor con una cláusula select.

8.- Escriba y ejecute

select count(*)
from productos

Calcula la cuenta de tuplas existentes en la tabla productos.

9.- Escriba y ejecute

select count(precio)
from productos

Calcula la cuenta de valores existentes de la columna precio en la tabla productos,


observe que no cuenta las tuplas en donde hay valores nulos en la columna
precio.

10.- Escriba y ejecute

select count(distinct precio)


from productos

Calcula la cuenta de valores distintos existentes de la columna precio en la tabla


productos, observe que hay tres renglones con precios iguales y uno valor nulo en
la columna precio, por lo que la cuenta toma en cuenta esto.

Ejercicio 2: Sumarización
1.- Ejecute el Sql Server Management Studio y seleccione la base de datos
ventas

2.- Escriba y ejecute

select no_factura, fecha_fac, observaciones, clave_cliente, monto


from facturas

Esta consulta despliega información de la tabla de facturas, observe que hay


facturas, de clientes repetidos, y, en en la columna observaciones que muestra
pagos de contado y a crédito.

3.- Escriba y ejecute

select clave_cliente,observaciones,sum(monto)
from facturas
group by clave_cliente,observaciones

Esta consulta agrupa la información por clave_cliente y observaciones, y, por cada


grupo despliega la suma de los montos facturados.

4.- Escriba y ejecute

select clave_cliente,observaciones,sum(monto)
from facturas
group by clave_cliente,observaciones
with cube

Observe que además de la agrupación por clave_cliente y observaciones, se


muestra un subtotal por cada uno de los grupos de clave_cliente y observaciones,
y, otro subtotal por cada clave_cliente. Además, al final aparece un valor que
sumariza el total por todas las tuplas, y, un subtotal por cada grupo de
observaciones.

5.- Escriba y ejecute


select clave_cliente,observaciones,sum(monto)
from facturas
group by clave_cliente,observaciones
with rollup

Observe que además de la agrupación por clave_cliente y observaciones, se


muestra un subtotal por cada uno de los grupos de clave_cliente y observaciones.
Además, al final aparece un valor que sumariza el total por todas las tuplas.
Observe las diferencias con la clásula cube.

6.- Escriba y ejecute

select clave_cliente,observaciones,monto

from facturas

order by clave_cliente,observaciones

compute sum(monto) by clave_cliente,observaciones

compute sum(monto) by clave_cliente

compute sum(monto)

Observe que en ésta consulta no hay un agrupamiento, se despliegan todas las


tuplas; hay un ordenamiento de todas las tuplas por clave_cliente y observaciones.
En los resultados se despliegan subtotales por cada grupo de observaciones, por
cada grupo de clave_cliente; y, por todas las tuplas.

Una mejor manera de observar los resultados consiste en elegir en el menú


principal del Query Analizar lo siguiente:

Query -> Results in text

Pruebe a ejecutar el estatuto sql primero hasta la cláusula order by, y después ir
incluyendo en la consulta las cláusulas compute by una a una. Observe las
diferencias.

Potrebbero piacerti anche