Avg (MDX)

Valuta un set e restituisce la media dei valori non vuoti delle celle del set, calcolata sulle misure del set o su una misura specificata.

Sintassi

Avg( Set_Expression [ , Numeric_Expression ] )

Argomenti

  • Set_Expression
    Espressione MDX (Multidimensional Expression) valida che restituisce un set.

  • Numeric_Expression
    Espressione numerica valida che in genere è un'espressione MDX (Multidimensional Expression) di coordinate di celle che restituisce un numero.

Osservazioni

Se è specificato un set di tuple vuote o un set vuoto, la funzione Avg restituisce un valore vuoto.

La funzione Avg calcola la media dei valori non vuoti delle celle del set specificato calcolando innanzitutto la somma dei valori nelle celle del set specificato e quindi dividendo la somma calcolata per il numero delle celle non vuote di tale set.

[!NOTA]

Analysis Services ignora i valori Null durante il calcolo del valore medio di un set di numeri.

Se viene omessa un'espressione numerica specifica, in genere una misura, la funzione Avg calcola la media di ogni misura nel contesto di query corrente. Se viene indicata una misura specifica, la funzione Avg valuta innanzitutto la misura sul set e quindi calcola la media in base alla misura specificata.

[!NOTA]

Quando si utilizza la funzione CurrentMember in un'istruzione di un membro calcolato, è necessario specificare un'espressione numerica, poiché non esiste alcuna misura predefinita per la coordinata corrente in tale contesto di query.

Per forzare l'inclusione delle celle vuote, l'applicazione deve utilizzare la funzione CoalesceEmpty o specificare una Numeric_Expression valida che fornisca il valore zero (0) per i valori vuoti. Per ulteriori informazioni sulle celle vuote, vedere la documentazione relativa a OLE DB.

Esempi

Nell'esempio seguente viene restituita la media di una misura su un set specificato. Si noti che la misura specificata può essere la misura predefinita per i membri del set specificato o una misura specificata.

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])

Nell'esempio seguente viene restituita la media giornaliera della misura Measures.[Gross Profit Margin], calcolata sui giorni di ogni mese dell'anno fiscale 2003, dal cubo Adventure Works. La funzione Avg calcola la media dal set di giorni contenuti in ogni mese della gerarchia [Ship Date].[Fiscal Time]. La prima e la seconda versione del calcolo sono esemplificative del comportamento predefinito della funzione Avg relativo rispettivamente all'esclusione e all'inclusione nella media dei giorni in cui non sono state registrate vendite.

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])

Nell'esempio seguente viene restituita la media giornaliera della misura Measures.[Gross Profit Margin], calcolata sui giorni di ogni semestre dell'anno fiscale 2003, 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]