为啥 MDX 中可能有超过 2 个轴,我可以在哪里使用它?

Posted

技术标签:

【中文标题】为啥 MDX 中可能有超过 2 个轴,我可以在哪里使用它?【英文标题】:Why are there more then 2 axis possible in MDX and where can I use it?为什么 MDX 中可能有超过 2 个轴,我可以在哪里使用它? 【发布时间】:2015-07-23 09:49:03 【问题描述】:

我一直在用谷歌搜索来回答这个问题。在 MDX 语言中最多可以使用 128 个轴,但我找不到使用它的单个应用程序,也找不到这样做的目的。

我可以使用这个 ADOMD.Net 组件来编写可以使用它的自己的应用程序,但是我找不到一个示例来说明为什么我应该这样做,也没有示例说明人们如何使用它在他们的应用程序中。

有人可以向我解释一下吗?

【问题讨论】:

“为什么可能有超过 2 个轴” - 因为立方体可以有两个以上的维度。我想这方面并没有做太多的工作,因为它确实是不需要的。使用交叉连接,您可以非常轻松地从多个维度获取数据。也许 MS 意识到不值得投入时间。 这是一个可能正确也可能不正确的假设,这一定是有原因的。 不需要。 SQL Server 中也有很多关键字保留供将来使用。同样,MDX 的开发人员本可以谨慎地保留此功能。 【参考方案1】:

您可以在子选择中使用任意数量的轴 - 这对于进行过滤非常有用。

一个例子:

SELECT 
  NON EMPTY 
    [Sales Territory].[Sales Territory].MEMBERS ON 0
 ,[Date].[Calendar].[Month].MEMBERS ON 1
FROM 
(
  SELECT 
    
        [Date].[Calendar].[Month].&[2006]&[1]
      : 
        [Date].[Calendar].[Month].&[2006]&[8]
     ON 0
   ,[Sales Territory].[Sales Territory].[Country].[Canada] ON 1
   ,[Product].[Product Categories].[Category].&[1] ON 2
  FROM [Adventure Works]
)
WHERE [Measures].[Internet Sales Amount];

这将返回以下内容:


编辑

我怀疑使用超过 2 个轴的能力在创建语言时具有面向未来的元素。因此作者不确定如何使用它并因此内置了此功能。

【讨论】:

很好的例子,不知道我可以用那个。除了过滤器和 3 轴图之外,您还有其他应用程序吗? 这也可以使用交叉连接来实现。 @SouravA 这是使用多于两个轴的示例:它不应该做任何有意义的事情 - 只是说明使用多于两个轴。 我可以假设,我使用的轴越多,我得到的元组就越多维粒度?就像在常规 SQL 中包含多个列的 group by ? @JacobSiemaszko - 您使用的每个元组内部都有 every 维度:如果您没有显式将特定成员添加到元组,则维度的 [All] 成员仍在那个元组。【参考方案2】:

假设您想使用 3D 图表显示结果,我想使用 3 轴是最简单的方法。

【讨论】:

好吧,我仍然可以想象。使用 4 或 5 轴的 1 个选项是过滤,就像在Whyteq 的上一个答案中一样,但是除了过滤之外,还有 3 + then 的用法示例吗?

以上是关于为啥 MDX 中可能有超过 2 个轴,我可以在哪里使用它?的主要内容,如果未能解决你的问题,请参考以下文章

我在哪里可以在 macOS 上运行 MDX 查询?

为啥维度取决于MDX中的属性

我在哪里可以下载 ascmd.exe?

mdx 规范?

如何评估 MDX 在 OLAP 处理中的性能

MDX帮助 - 将月份作为值返回