Avg (MDX)
Avalia um conjunto e retorna a média dos valores não vazios das células no conjunto, com base nas medidas no conjunto ou em uma medida especificada.
Sintaxe
Avg( Set_Expression [ , Numeric_Expression ] )
Argumentos
Set_Expression
Uma expressão MDX válida que retorna um conjunto.
Numeric_expression
Uma expressão numérica válida, geralmente uma linguagem MDX de coordenadas de célula, que retorna um número.
Comentários
Se um conjunto de tuplas vazias ou um conjunto vazio for especificado, a função Avg retornará um valor vazio.
A função Avg calcula a média dos valores não vazios das células no conjunto especificado calculando primeiro a soma de valores entre células no conjunto especificado e dividindo a soma calculada pela contagem de células não vazias no conjunto especificado.
Observação
O Analysis Services ignora nulos ao calcular o valor médio em um conjunto de números.
Se uma expressão numérica específica (normalmente uma medida) não for especificada, a função Avg será a média de cada medida dentro do contexto de consulta atual. Se uma medida específica for fornecida, a função Avg primeiro avaliará a medida sobre o conjunto e, em seguida, a função calculará a média com base na medida especificada.
Observação
Ao usar a função CurrentMember em uma instrução membro calculada, você deve especificar uma expressão numérica porque não existe nenhuma medida padrão para a coordenada atual em tal contexto de consulta.
Para forçar a inclusão de células vazias, o aplicativo deve usar a função CoalesceEmpty ou especificar uma Numeric_Expression válida que forneça um valor zero (0) para valores vazios. Para obter mais informações sobre células vazias, consulte a documentação OLE DB.
Exemplos
O exemplo a seguir retorna a média para uma medida em um determinado conjunto. Observe que a medida especificada pode ser a medida padrão para os membros do conjunto especificado ou uma 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])
O exemplo a seguir retorna a média diária da Measures.[Gross Profit Margin]
medida, calculada ao longo dos dias de cada mês no ano fiscal de 2003, do cubo Adventure Works . A função Avg calcula a média do conjunto de dias contido em cada mês da [Ship Date].[Fiscal Time]
hierarquia. A primeira versão do cálculo mostra o comportamento padrão da função Avg ao excluir os dias em que nenhuma venda foi registrada a partir da média e a segunda versão mostra como incluir os dias sem venda na média.
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])
O exemplo a seguir retorna a média diária da Measures.[Gross Profit Margin]
medida, calculada ao longo dos dias de cada semestre no ano fiscal de 2003, do 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]