Avg (MDX)
对集求值,并返回该集中的单元的非空值的平均值,此平均值是对该集中的度量值或指定度量值求得的平均值。
语法
Avg( Set_Expression [ , Numeric_Expression ] )
参数
Set_Expression
返回集的有效多维表达式 (MDX)Numeric_Expression
有效的数值表达式,通常为返回数值的单元坐标的多维表达式 (MDX)。
注释
如果指定了一组空元组或一个空集,则 Avg 函数返回一个空值。
Avg 函数首先计算指定集中的所有单元值之和,然后将计算出的和除以该集中的非空单元数,从而计算出指定集单元中的非空值的平均值。
备注
计算一组数值的平均值时,Analysis Services 将忽略 Null 值。
如果未指定特定数值表达式(通常为度量值),则 Avg 函数在当前查询上下文中计算每个度量值的平均值。 如果指定了度量值,则 Avg 函数首先计算该集的度量值,然后对指定的度量值计算平均值。
备注
在计算成员语句中使用 CurrentMember 函数时,必须指定数值表达式,因为在这种查询上下文的当前坐标中不存在任何默认度量值。
若要强制包含空单元,应用程序必须使用 CoalesceEmpty 函数,或指定一个有效的 Numeric_Expression 以提供零 (0) 作为空值。 有关空单元的详细信息,请参阅 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 多维数据集中返回 Measures.[Gross Profit Margin] 度量值的日平均值,该值是根据 2003 会计年度中每个月的所有日期计算出的。 Avg 函数从 [Ship Date].[Fiscal Time] 层次结构中每个月所包含的所有日期的集中计算平均值。 第一种形式的计算演示 Avg 将未记录任何销售额的天数从平均值计算中排除的默认行为,第二种形式的计算演示如何将没有销售额的天数包含在平均值计算中。
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 多维数据集中返回 Measures.[Gross Profit Margin] 度量值的日平均值,该值是根据 2003 会计年度中每个半期的所有日期计算出来的。
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]