Avg (MDX)

Wertet eine Menge aus und gibt den Durchschnitt der nicht leeren Werte der Zellen in der Menge zurück, gemittelt über die Measures in der Menge oder über ein angegebenes Measure.

Syntax

Avg( Set_Expression [ , Numeric_Expression ] )

Argumente

  • Set_Expression
    Ein gültiger MDX-Ausdruck (Multidimensional Expressions), der eine Menge zurückgibt.

  • Numeric_Expression
    Ein gültiger numerischer Ausdruck, bei dem es sich in der Regel um einen MDX-Ausdruck (Multidimensional Expressions) für Zellenkoordinaten handelt, der eine Zahl zurückgibt.

Hinweise

Wird eine Menge von leeren Tupeln oder eine leere Menge angegeben, gibt die Avg-Funktion einen leeren Wert zurück.

Die Avg-Funktion berechnet den Durchschnitt der nicht leeren Werte der Zellen in der der angegebenen Menge, indem zuerst die Summe der Werte über die Zellen in der angegebenen Menge berechnet wird und dann diese Summe durch die Anzahl der nicht leeren Zellen in der angegebenen Menge dividiert wird.

HinweisHinweis

In Analysis Services werden Nullen ignoriert, wenn der Durchschnittswert in einer Menge von Zahlen berechnet wird.

Wenn kein bestimmter numerischer Ausdruck (im Allgemeinen ein Measure) angegeben wird, berechnet die Avg-Funktion den Mittelwert jedes Measures im aktuellen Abfragekontext. Wenn ein bestimmtes Measure bereitgestellt wird, wertet die Avg-Funktion zuerst das Measure über die Menge aus und berechnet anschließend den Durchschnitt basierend auf dem angegebenen Measure.

HinweisHinweis

Wenn Sie die CurrentMember-Funktion in einer Anweisung eines berechneten Elements verwenden, müssen Sie einen numerischen Ausdruck angeben, da für die aktuelle Koordinate in solch einem Abfragekontext kein Standardmeasure vorhanden ist.

Soll die Einbeziehung leerer Zellen erzwungen werden, muss die Anwendung die CoalesceEmpty-Funktion verwenden oder in Numeric_Expression einen gültigen Ausdruck angeben, der den Wert Null (0) für leere Werte bereitstellt. Weitere Informationen zu leeren Zellen finden Sie in der OLE DB-Dokumentation.

Beispiele

Im folgenden Beispiel wird der Durchschnittswert für ein Measure über eine bestimmte Menge zurückgegeben. Beachten Sie, dass das angegebene Measure dem Standardmeasure für die Elemente der angegebenen Menge oder eines bestimmten Measures entsprechen kann.

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

Das folgende Beispiel gibt den täglichen Mittelwert des Measures.[Gross Profit Margin]-Measures aus dem Adventure Works-Cube zurück, berechnet über die Tage jedes Monats im Geschäftsjahr 2003. Die Avg-Funktion berechnet den Mittelwert aus der Menge der Tage, die in jedem Monat der [Ship Date].[Fiscal Time]-Hierarchie enthalten sind. Die erste Berechnungsversion zeigt das Standardverhalten für den Durchschnitt durch Ausschließen von Tagen, an denen keine Verkäufe vom Durchschnitt erfasst wurden. Die zweite Version zeigt, wie Tage ohne Verkäufe in den Durchschnitt eingeschlossen werden.

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

Das folgende Beispiel gibt den täglichen Durchschnitt des Measures.[Gross Profit Margin]-Measures, berechnet über die Tage jedes Semesters im Geschäftsjahr 2003, aus dem Adventure Works-Cube zurück.

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]

Siehe auch

Verweis