Avg (MDX)
Evalúa un conjunto y devuelve el promedio de los valores no vacíos de las celdas del conjunto promediados con las medidas del conjunto o una medida especificada.
Sintaxis
Avg( Set_Expression [ , Numeric_Expression ] )
Argumentos
Set_Expression
Expresión MDX válida que devuelve un conjuntoNumeric_Expression
Expresión numérica válida que suele ser una expresión MDX de las coordenadas de celdas que devuelven un número.
Comentarios
Si se especifica un conjunto de tuplas vacías o un conjunto vacío, la función Avg devuelve un valor vacío.
La función Avg calcula el promedio de los valores no vacíos de las celdas del conjunto especificado al calcular en primer lugar la suma de valores de las celdas del conjunto especificado y, a continuación, dividir la suma calculada por el recuento de celdas no vacías del conjunto especificado.
Nota
Analysis Services omite los valores NULL al calcular el promedio de un conjunto de números.
Si no se especifica una expresión numérica concreta (normalmente una medida), la función Avg calcula el promedio de cada medida en el contexto de consulta actual. Si se proporciona una medida específica, la función Avg primero evalúa la medida en el conjunto y, después, la función calcula el promedio basado en la medida especificada.
Nota
Si utiliza la función CurrentMember en una instrucción de miembros calculados, debe especificar una expresión numérica ya que no existe ninguna medida predeterminada para la coordenada actual en un contexto de consulta de ese tipo.
Para forzar la inclusión de celdas vacías, la aplicación debe utilizar la función CoalesceEmpty o especificar una Numeric_Expression válida que proporcione un valor cero (0) para los valores vacíos. Para obtener más información acerca de las celdas vacías, consulte la documentación de OLE DB.
Ejemplos
El siguiente ejemplo devuelve el promedio de una medida sobre un conjunto especificado. Tenga en cuenta que la medida especificada puede ser la medida predeterminada para los miembros del conjunto especificado o una medida especificada.
WITH SET [NW Region] AS
{[Geography].[State-Province].[Washington]
, [Geography].[State-Province].[Oregon]
, [Geography].[State-Province].[Idaho]}
MEMBER [Geography].[Geography].[NW Region Avg] AS
AVG ([NW Region]
--Uncomment the line below to get an average by Reseller Gross Profit Margin
--otherwise the average will be by whatever the default measure is in the cube,
--or whatever measure is specified in the query
--, [Measures].[Reseller Gross Profit Margin]
)
SELECT [Date].[Calendar Year].[Calendar Year].Members ON 0
FROM [Adventure Works]
WHERE ([Geography].[Geography].[NW Region Avg])
El siguiente ejemplo devuelve el promedio diario de la medida Measures.[Gross Profit Margin], calculada en los días de cada mes del año fiscal 2003, a partir del cubo Adventure Works. La función Avg calcula el promedio a partir del conjunto de días contenidos en cada mes de la jerarquía [Ship Date].[Fiscal Time]. La primera versión del cálculo muestra el comportamiento predeterminado de Avg en la exclusión de los días que no registraron ventas por valor del promedio; la segunda versión muestra cómo se incluyen los días que no hubo ventas en el promedio.
WITH MEMBER Measures.[Avg Gross Profit Margin] AS
Avg(
Descendants(
[Ship Date].[Fiscal].CurrentMember,
[Ship Date].[Fiscal].[Date]
),
Measures.[Gross Profit Margin]
), format_String='percent'
MEMBER Measures.[Avg Gross Profit Margin Including Empty Days] AS
Avg(
Descendants(
[Ship Date].[Fiscal].CurrentMember,
[Ship Date].[Fiscal].[Date]
),
CoalesceEmpty(Measures.[Gross Profit Margin],0)
), Format_String='percent'
SELECT
{Measures.[Avg Gross Profit Margin],Measures.[Avg Gross Profit Margin Including Empty Days]} ON COLUMNS,
[Ship Date].[Fiscal].[Fiscal Year].Members ON ROWS
FROM
[Adventure Works]
WHERE([Product].[Product Categories].[Product].&[344])
El siguiente ejemplo devuelve el promedio diario de la medida Measures.[Gross Profit Margin] calculada en los días de cada semestre del año fiscal 2003, a partir del cubo Adventure Works.
WITH MEMBER Measures.[Avg Gross Profit Margin] AS
Avg(
Descendants(
[Ship Date].[Fiscal].CurrentMember,
[Ship Date].[Fiscal].[Date]
),
Measures.[Gross Profit Margin]
)
SELECT
Measures.[Avg Gross Profit Margin] ON COLUMNS,
[Ship Date].[Fiscal].[Fiscal Year].[FY 2003].Children ON ROWS
FROM
[Adventure Works]