为啥 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 个轴,我可以在哪里使用它?的主要内容,如果未能解决你的问题,请参考以下文章