Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

duda con sentencia WITH ROLLUP

Estas en el tema de duda con sentencia WITH ROLLUP en el foro de SQL Server en Foros del Web. Hola estoy estudiando SQL Server y estoy haciendo mis consultas sobre la base de datos AdventureWorks2012 y tengo una duda con la siguiente consulta @import ...
  #1 (permalink)  
Antiguo 22/02/2016, 14:45
 
Fecha de Ingreso: febrero-2016
Mensajes: 1
Antigüedad: 8 años, 1 mes
Puntos: 0
Pregunta duda con sentencia WITH ROLLUP

Hola estoy estudiando SQL Server y estoy haciendo mis consultas sobre la base de datos AdventureWorks2012 y tengo una duda con la siguiente consulta

Código SQL:
Ver original
  1. SELECT Production.ProductCategory.ProductCategoryID
  2. , Production.Product.ProductSubcategoryId
  3. , AVG(ListPrice) AS 'Averange'
  4. , MIN(ListPrice) AS 'Minimun'
  5. , MAX(ListPrice) AS 'Maximum'
  6. FROM Production.Product
  7. JOIN Production.ProductSubCategory
  8. ON production.ProductSubcategory.ProductSubcategoryID =
  9. Production.Product.ProductSubcategoryId
  10. JOIN Production.ProductCategory
  11. ON Production.ProductSubcategory.ProductCategoryID =
  12.     Production.ProductCategory.ProductCategoryID
  13. WHERE ListPrice <> 0
  14. GROUP BY Production.ProductCategory.ProductCategoryID,Product.ProductSubcategoryID
  15. WITH ROLLUP


la anterior consulta me arroja la media, el mínimo y el máximo para cada una de las subcategorias contenidas en cada categoría y ademas de un registro extra cada ProductCategoryId mostrando su media, mínimo y máximo, pero mi duda viene cuando me muestra el ultimo registro el cual es el siguiente
ProductCategoryID ProductSubcategoryId Media Minimo Maximo
NULL NULL 744.5952 2.29 3578.27

por que si realizo la siguiente consulta el resultado no es el mismo para la media

Código SQL:
Ver original
  1. SELECT AVG(ListPrice) AS 'Averange'
  2. FROM Production.Product
  3. WHERE ListPrice <> 0

Resultado de la anterior consulta: 727.2624

los resultados de minimo y maximo son correctos pero no logro entender por que me arroja ese valor de 744.5952 cuando aplico el WITH ROLLUP

me podrían explicar por favor por que me sale una cantidad diferente.

Gracias y saludos.
  #2 (permalink)  
Antiguo 22/02/2016, 15:17
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: duda con sentencia WITH ROLLUP

Si buscas en GOOGLE, encontraras ejemplos de como diferenciar una de otra instruccion, por ejemplo

http://stackoverflow.com/questions/7...ube-and-rollup
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 22/02/2016, 15:17
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: duda con sentencia WITH ROLLUP

El manual que estas siguiendo te dice porque usar Roll up? o nada mas lo usaste porque si?? ahora te dejo un link del rollup y de cube:

http://programacion.net/articulo/cub...l_sql_266#pre8

Porque los resultados son diferentes, pues porque estas usando una funcion de agregacion ;)

http://blogs.msdn.com/b/craigfr/arch...th-rollup.aspx
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 22/02/2016 a las 15:23

Etiquetas: sql-server-2008
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:24.