Avg (MDX)

セットを評価し、セット内のセルの空でない値の平均値を返します。セット内のメジャーまたは指定されたメジャーに対して平均値が求められます。

構文

Avg( Set_Expression [ , Numeric_Expression ] )

引数

  • Set_Expression
    セットを返す有効な多次元式 (MDX) 式です。

  • Numeric_Expression
    有効な数値式です。通常は、数値を返すセル座標の多次元式 (MDX) 式です。

説明

空の組のセットまたは空のセットを指定した場合、Avg 関数は空の値を返します。

Avg 関数は、指定されたセット内のセルの空でない値の平均を計算するために、まず指定されているセット内のセル値の合計を計算してから、指定されたセット内の空でないセルの数でその合計を除算します。

注意

Analysis Services では、数値セットの平均値が計算される際、NULL 値は無視されます。

特定の数値式 (通常はメジャー) が指定されていない場合、Avg 関数は、現在のクエリ コンテキスト内で各メジャーの平均を求めます。 特定のメジャーが指定されている場合、Avg 関数はまずセットに対してメジャーを評価してから、指定されたメジャーに基づいて平均値を計算します。

注意

計算されるメンバーのステートメントで CurrentMember 関数を使用する場合、このようなクエリ コンテキストでは現在の座標に対する既定のメジャーが存在しないので、数値式を指定する必要があります。

空のセルを含める場合は、アプリケーションで CoalesceEmpty 関数を使用するか、空の値に対して 0 の値を設定する有効な Numeric_Expression を指定する必要があります。 空のセルの詳細については、OLE DB のドキュメントを参照してください。

使用例

次の例では、指定されたセットに対するメジャーの平均値を返しています。 メジャーは、指定されたセットのメンバーの既定のメジャーか、指定されたメジャーのどちらかになります。

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

Adventure Works キューブから、2003 会計年度の各月に関して、Measures.[Gross Profit Margin] メジャーの日次平均を計算する例を以下に示します。 この Avg 関数は、[Ship Date].[Fiscal Time] 階層の各月に含まれている日のセットから平均を計算します。 計算の 1 つ目のバージョンでは、売上が記録されなかった日を平均から除く、Avg の既定の動作を示します。2 番目のバージョンでは、売上のない日を平均に含める方法を示します。

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

Adventure Works キューブから、2003 会計年度の各半期に関して、Measures.[Gross Profit Margin] メジャーの日次平均を計算して返す例を以下に示します。

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]

関連項目

参照

MDX 関数リファレンス (MDX)