MDX AVG 函数

MDX AVG 函数用于计算指定集合中非空成员的平均值。它类似于 SQL AVG 函数。MDX 平均值函数在计算平均值时会忽略 NULL 值。

MDX AVG 函数语法

多维表达式中 AVG 函数的基本语法如下所示

AVG ( Set_Expression, Numeric_Expression)
  • Set_Expression:返回有效集合的任何多维表达式。
  • Numeric_Expression:返回数值的任何多维表达式。通常,我们在此处使用所需的度量值。

如何使用 AVG 函数和示例计算平均值?为此,我们将使用下面显示的数据。

下面的截图显示了地理位置中的国家/地区

MDX AVG FUNCTION

MDX AVG 函数示例 1

以下查询将返回“国家/地区”中所有国家/地区的经销商销售额,并使用 AVG 函数计算其销售额的平均值。

WITH MEMBER 
  [Geography].[Geography].[Average] AS
   AVG (
        [Geography].[Geography].[Country],
	[Measures].[Reseller Sales Amount]
       ) 

SELECT 
  [Measures].[Reseller Sales Amount] ON COLUMNS,
  {
   [Geography].[Geography].[Country], 
   [Geography].[Geography].[Average]
  } ON ROWS
FROM [Adventure Works]

MDX AVG FUNCTION 1

下面的 MDX 语句将创建计算成员 [Geography].[Geography].[Average]

WITH MEMBER 
  [Geography].[Geography].[Average] 

在下一行中,我们使用 AVG 函数计算 [Geography].[Geography].[Country] 中国家/地区的 [Measures].[Reseller Sales Amount] 的平均值。

AVG (
     [Geography].[Geography].[Country],
     [Measures].[Reseller Sales Amount]
    )

在下一条语句中,我们在列中选择了经销商销售额,然后在行中选择了国家/地区集合和计算成员。

SELECT 
  [Measures].[Reseller Sales Amount] ON COLUMNS,
  {
   [Geography].[Geography].[Country], 
   [Geography].[Geography].[Average]
  } ON ROWS

MDX AVG 函数示例 2

以下查询将返回日期维度中所有日历年的互联网销售额。并使用 MDX AVG 函数计算其销售额的平均值。

WITH MEMBER [Date].[Calendar].[Average] AS
  AVG (
       [Date].[Calendar].[Calendar Year],
       [Measures].[Internet Sales Amount]
      ) 

SELECT [Measures].[Internet Sales Amount] ON COLUMNS, 
  NON EMPTY {
             [Date].[Calendar].[Calendar Year], 
             [Date].[Calendar].[Average] 
            } ON ROWS
FROM [Adventure Works]
MDX AVG FUNCTION 2

以下语句将创建计算成员 [Date].[Calendar].[Average]

WITH MEMBER 
  [Date].[Calendar].[Average]  

在下一行中,我们使用 AVG 函数计算 [Date].[Calendar].[Calendar Year] 中的日历年的 [Measures].[Internet Sales Amount] 的平均值。

AVG (
       [Date].[Calendar].[Calendar Year],
       [Measures].[Internet Sales Amount]
      ) 

在下一条语句中,我们在列中选择了互联网销售额,然后在行中选择了日历年集合和计算成员([Date].[Calendar].[Average])。我们还使用了 NON EMPTY 函数来避免 NULL 值。

SELECT [Measures].[Internet Sales Amount] ON COLUMNS, 
  NON EMPTY {
             [Date].[Calendar].[Calendar Year], 
             [Date].[Calendar].[Average] 
            } ON ROWS
FROM [Adventure Works]

MDX AVG 函数示例 3

在此示例中,我们将向您展示当有 NULL 值时会发生什么。为此,我们在没有 NON EMPTY 函数的情况下使用上面的 MDX 查询。

WITH MEMBER [Date].[Calendar].[Average] AS
  AVG (
       [Date].[Calendar].[Calendar Year],
       [Measures].[Internet Sales Amount]
      ) 

SELECT [Measures].[Internet Sales Amount] ON COLUMNS, 
       {
        [Date].[Calendar].[Calendar Year], 
        [Date].[Calendar].[Average] 
       } ON ROWS
FROM [Adventure Works]
AVG FUNCTION 3

如果观察结果,我们会得到相同的平均值,例如 2 和 3。这是因为 AVG 函数不考虑具有 NULL 值的成员。这意味着 AVG 函数正在计算从 CY 2010 到 CY 2014 的平均值。

评论已关闭。