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]