MDX TopCount 函数

多维表达式 (MDX) Topcount 函数将对给定数据按降序排序,然后从排序后的数据中选择所需的记录数。

例如,如果您想找出表现最好的 10 种产品。或者您想找出销售额最高的 10 个区域,或者计算最高工资。我们可以将此 MDX Topcount 函数与度量一起使用。

MDX TOPCOUNT 和 SQL TOP 子句之间的相似之处如下。TOPCOUNT 类似于SQL TOP 子句

  • 与 Top 子句一样,Topcount 按它们最初存储的顺序提取所需的记录数。
  • 要提取表现最好的 10 条记录,我们必须在 SQL 中使用Order By 子句
  • 要提取表现最好的 10 条记录,我们必须使用适当的度量或数值作为第三个参数。

MDX TopCount 函数语法

Topcount 函数的基本语法如下所示

TOPCOUNT (Set_Expression, Count, Numeric_Expression)
  • Set_Expression:您想检查的任何多维表达式或属性。
  • Count:请输入您想检索的记录数。
  • Numeric_Expression:任何多维表达式或度量。这是一个完全可选的参数。如果我们使用此参数,TOPCOUNT 将使用此 Numeric_Expression 按降序对数据进行排序。然后选择您要求的记录数;否则,TOPCOUNT 将在不排序的情况下选择所需的记录数。

在本文中,我们将向您展示如何使用 MDX TopCount 函数从 Geography 表(存在于 Adventure Works Cube 中)中提取 Top 7 州,这些州的经销商销售额高于其他州,并附有示例。为此,我们将使用下面显示的数据。

MDX Topcount(两个参数)

在此示例中,我们将向您展示,当我们遗漏 Topcount 函数中的第三个参数时会发生什么。以下查询将按它们在上面出现的顺序返回上述源的前七条记录。

SELECT {[Measures].[Reseller Sales Amount]} ON COLUMNS,
 TOPCOUNT (
	    [Geography].[Geography].[State-Province] 
           ,7 
      	  ) ON ROWS
FROM [Adventure Works]

在上面的MDX查询中,我们在列中选择了 [Reseller Sales Amount] 度量,在行中选择了地理表中的 [State Province] 列。接下来,Topcount 函数将选择 Top 7 记录,而不管它们的度量值。

MDX TOPCOUNT FUNCTION 2

没有人会接受上述结果,认为它们是全球排名前 7 的表现最佳的州。

MDX Topcount 函数示例

在此示例中,我们将向您展示,当我们向 Topcount 函数添加第三个参数时会发生什么。以下查询将使用 [Measures].[Reseller Sales Amount] 按降序对记录进行排序,然后返回排序数据的前七条记录。总之,我们将获得全球排名前 7 的表现最佳的州。

SELECT {[Measures].[Reseller Sales Amount]} ON COLUMNS,
 TOPCOUNT (
	    [Geography].[Geography].[State-Province] 
           ,7 
	   ,[Measures].[Reseller Sales Amount]
	  ) ON ROWS
FROM [Adventure Works]
TOPCOUNT FUNCTION 3

MDX Topcount 函数中的多个度量

当我们为 Topcount 函数的第三个参数添加错误的度量时会发生什么?我们将使用两个度量([Measures].[Reseller Sales Amount]、[Measures].[Reseller Gross Profit]),并将 [Measures].[Reseller Gross Profit] 指定为排序参数。以下 topcount 查询将使用 [Measures].[Reseller Gross Profit] 按降序对记录进行排序,然后返回排序数据的前七条记录。

SELECT {[Measures].[Reseller Sales Amount],
        [Measures].[Reseller Gross Profit]} ON COLUMNS,
 TOPCOUNT (
	    [Geography].[Geography].[State-Province]
           ,7 
	   ,[Measures].[Reseller Gross Profit]
	   ) ON ROWS
FROM [Adventure Works]

MDX TOPCOUNT FUNCTION 4

尽管我们期望 Top 7 销售额,但上述查询检索的是毛利润最高的 Top 7 州。

注意:请在 TOPCOUNT 函数中使用适当的度量作为第三个参数。否则,您将得到错误的结果。