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 originalSELECT Production.ProductCategory.ProductCategoryID
, Production.Product.ProductSubcategoryId
, AVG(ListPrice) AS 'Averange'
, MIN(ListPrice) AS 'Minimun'
, MAX(ListPrice) AS 'Maximum'
FROM Production.Product
JOIN Production.ProductSubCategory
ON production.ProductSubcategory.ProductSubcategoryID =
Production.Product.ProductSubcategoryId
JOIN Production.ProductCategory
ON Production.ProductSubcategory.ProductCategoryID =
Production.ProductCategory.ProductCategoryID
WHERE ListPrice <> 0
GROUP BY Production.ProductCategory.ProductCategoryID,Product.ProductSubcategoryID
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 originalSELECT AVG(ListPrice) AS 'Averange'
FROM Production.Product
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.