Agrupar y Resumir Datos PDF
Agrupar y Resumir Datos PDF
Agrupar y Resumir Datos PDF
resumir datos
Contenido
Introduccin 1
Presentacin de los primeros n valores 2
Uso de funciones de agregado 4
Fundamentos de GROUP BY 8
Generacin de valores de agregado
dentro de los conjuntos de resultados 13
Uso de las clusulas
COMPUTE y COMPUTE BY 22
Procedimientos para agrupar y resumir datos i
Introduccin
Objetivo del tema
Exponer un breve resumen
de los temas tratados en
este mdulo. Presentacin de los primeros n valores
Explicacin previa
Puede ser interesante Uso de funciones de agregado
agrupar o resumir los datos
cuando se obtienen. Fundamentos de GROUP BY
Utilice la palabra clave TOP n para presentar slo las n primeras filas o el n por
Nota del instructor ciento de un conjunto de resultados. Aunque la palabra clave TOP n no es un
El uso de unos ndices
adecuados puede aumentar
estndar ANSI, resulta til, por ejemplo, para presentar los productos ms
la eficacia de las vendidos de una compaa.
operaciones de ordenacin
Cuando utilice la palabra clave TOP n o TOP n PERCENT, considere los
y agrupamiento. Este curso
no trata en detalle acerca de
hechos e instrucciones siguientes:
los ndices. Para obtener Especifique el intervalo de valores en la clusula ORDER BY. Si no utiliza
ms informacin acerca del
una clusula ORDER BY, Microsoft SQL Server 2000 devuelve las filas
uso de ndices, consulte el
curso 2329A, Programacin
que cumplen la clusula WHERE sin ningn orden concreto.
de una base de datos Utilice un entero sin signo a continuacin de la palabra clave TOP.
Microsoft SQL Server 2000.
Si la palabra clave TOP n PERCENT produce un nmero no entero de filas,
SQL Server redondea la cantidad no entera al siguiente valor entero.
Utilice la clusula WITH TIES para incluir las filas iguales en el conjunto
de resultados. Las filas iguales se producen cuando hay dos o ms filas con
valores iguales a los de la ltima fila devuelta segn la clusula ORDER
BY. Por lo tanto, el conjunto de resultados puede incluir cualquier nmero
de filas.
Nota Slo se puede utilizar la clusula WITH TIES cuando existe una
clusula ORDER BY.
Procedimientos para agrupar y resumir datos 3
Ejemplo 1 Este ejemplo utiliza la palabra clave TOP n para buscar los cinco productos ms
vendidos en un mismo pedido. Los valores iguales siguientes quedan excluidos
del conjunto de resultados.
USE northwind
SELECT TOP 5 orderid, productid, quantity
FROM [order details]
ORDER BY quantity DESC
GO
(5 filas afectadas)
Ejemplo 2 En este ejemplo se utiliza la palabra clave TOP n y la clusula WITH TIES para
buscar los cinco productos ms vendidos dentro de un mismo pedido. El
conjunto de resultados presenta un total de 10 productos, ya que se incluyen las
filas adicionales que tienen los mismos valores que la ltima fila incluida.
Compare el conjunto de resultados siguiente con el del ejemplo 1.
USE northwind
Sugerencia SELECT TOP 5 WITH TIES orderid, productid, quantity
Compare el conjunto de
FROM [order details]
resultados siguiente con el
del ejemplo 1. ORDER BY quantity DESC
GO
SUM
SUM Valores
Valorestotales
totalesen
enuna
unaexpresin
expresinnumrica
numrica
STDEV
STDEV Desviacin
Desviacinestadstica
estadsticade
detodos
todoslos
losvalores
valores
STDEVP
STDEVP Desviacin
Desviacinestadstica
estadsticapara
paralalapoblacin
poblacin
VAR
VAR Varianza
Varianzaestadstica
estadsticade
detodos
todoslos
losvalores
valores
VARP
VARP Varianza
Varianzaestadstica
estadsticade
detodos
todoslos
losvalores
valorespara
paralalapoblacin
poblacin
El tipo de datos de una columna determina las funciones que se pueden utilizar
con ella. La tabla siguiente describe las relaciones entre las funciones y los tipos
de datos.
Procedimientos para agrupar y resumir datos 5
Ejemplo 1 En este ejemplo se calcula el precio promedio por unidad de todos los
productos de la tabla products.
USE northwind
SELECT AVG(unitprice)
FROM products
GO
Resultado
28.8663
(1 fila afectada)
Ejemplo 2 En este ejemplo se suman todas las filas de la columna quantity de la tabla
order details.
USE northwind
SELECT SUM(quantity)
FROM [order details]
GO
Resultado
51317
(1 fila afectada)
Procedimientos para agrupar y resumir datos 6
Ejemplo
Ejemplo 22
USE
USE northwind
northwind
SELECT
SELECT COUNT(reportsto)
COUNT(reportsto)
FROM
FROM employees
employees
GO
GO
Los valores nulos pueden hacer que las funciones de agregado produzcan
resultados inesperados. Por ejemplo, si ejecuta una instruccin SELECT que
incluye una funcin COUNT en una columna que contiene 18 filas, dos de las
cuales contienen valores nulos, el conjunto de resultados devuelve un total de
16 filas. SQL Server pasa por alto las dos filas que contienen valores nulos.
Por tanto, preste atencin cuando utilice funciones de agregado en columnas
que contengan valores nulos, ya que puede que el conjunto de resultados no
sea representativo de los datos. Sin embargo, si decide utilizar funciones de
agregado con valores nulos, considere los hechos siguientes:
Las funciones de agregado de SQL Server, con la excepcin de la funcin
COUNT (*), pasan por alto los valores nulos en las columnas.
La funcin COUNT (*) cuenta todas las filas, incluso si todas las columnas
contienen un valor nulo. Por ejemplo, si ejecuta una instruccin SELECT
que incluya la funcin COUNT (*) en una columna que contenga un total de
18 filas, dos de las cuales contienen valores nulos, el conjunto de resultados
devuelve un total de 18 filas.
Resultado
9
(1 fila afectada)
Procedimientos para agrupar y resumir datos 7
Resultado
8
(1 fila afectada)
Procedimientos para agrupar y resumir datos 8
Fundamentos de GROUP BY
Objetivo del tema
Proporcionar una introduc-
cin a las clusulas que
resumen los valores de Uso de la clusula GROUP BY
una columna.
Uso de la clusula GROUP BY con la clusula HAVING
Explicacin previa
Las funciones de agregado
se suelen utilizar junto con
las clusulas GROUP BY y
HAVING.
La tabla de la parte inferior Nota La tabla orderhist se ha creado especficamente para los ejemplos de
derecha utiliza la clusula este mdulo. La secuencia de comandos 2317A_R04.sql, que se incluye en el
GROUP BY y la clusula disco compacto Material del alumno, se puede ejecutar para agregar dicha tabla
WHERE para restringir el a la base de datos Northwind.
nmero de filas devuelto.
Procedimientos para agrupar y resumir datos 10
(3 filas afectadas)
Ejemplo 2 Este ejemplo agrega una clusula WHERE a la consulta del ejemplo 1. Esta
consulta restringe las filas al producto cuyo identificador es 2 y, despus,
agrupa dichas filas y calcula la cantidad total pedida. Compare este conjunto
de resultados con el del ejemplo 1.
USE northwind
SELECT productid, SUM(quantity) AS total_quantity
FROM orderhist
WHERE productid = 2
GROUP BY productid
GO
(1 fila afectada)
(2 filas afectadas)
(4 filas afectadas)
Procedimientos para agrupar y resumir datos 13
Ejemplo 1 En este ejemplo se presentan todas las filas de la tabla orderhist y los valores
de cantidades de resumen de cada producto.
USE northwind
Sugerencia SELECT productid, orderid, SUM(quantity) AS total_quantity
Estos ejemplos estn
FROM orderhist
generados uno a partir de
otro, para que se pueda GROUP BY productid, orderid
comprender cmo ROLLUP WITH ROLLUP
complementa a GROUP BY. ORDER BY productid, orderid
GO
(5 filas afectadas)
Procedimientos para agrupar y resumir datos 16
(8 filas afectadas)
Procedimientos para agrupar y resumir datos 17
Ejemplo 1 En este ejemplo se presentan todas las filas de la tabla orderhist y se genera el
total final de todos los productos pedidos.
USE northwind
SELECT productid, orderid, quantity
FROM orderhist
ORDER BY productid, orderid
COMPUTE SUM(quantity)
GO
sum
==========
95
(7 filas afectadas)
Ejemplo 2 En este ejemplo se presentan todas las filas de la tabla orderhist, se genera el
total pedido para cada producto y el total final de todos los productos pedidos.
USE northwind
SELECT productid, orderid, quantity
FROM orderhist
ORDER BY productid, orderid
COMPUTE SUM(quantity) BY productid
COMPUTE SUM(quantity)
GO
sum
==========
15
2 1 10
2 2 25
sum
==========
35
3 1 15
3 2 30
sum
==========
45
sum
==========
95
(10 filas afectadas)