【问题标题】:Difference between tuple and set in mdxmdx中元组和集合的区别
【发布时间】:2012-03-01 14:00:35
【问题描述】:

MDX 中的tupleset 有什么区别。我们如何区分两者以及何时使用它们。

【问题讨论】:

标签: sql ssas mdx


【解决方案1】:

从更数学的角度来到 MDX,这是我对这个问题的看法:

假设您有一个尺寸为 X、Y 和 Z 的 3d 立方体。 立方体中的单元数是 X 中的成员数乘以 Y 中的成员数乘以成员数Z 的。

每个单元格在立方体中都有一个基于 X、Y 和 Z 值的坐标。该坐标是一个元组

让我们说:

  • X 是措施
  • Y 是
  • Z 是产品

那么一个单元格可能是 1999 年的笔记本电脑销量。单元格坐标将是: 逻辑上 (X, Y, Z) 和物理上这是一个元组,例如

(Measures.Sales, Years.[1999], Products.[Laptop])  

现在假设我们需要多个单元格,那么我们需要多个元组,对吗?是的,一个 Set 基本上是多个元组。实际上,我包括 0 和 1 的倍数。因此,扩展我们的示例,我们可以拥有 1999 年的笔记本电脑和 2001 年的台式机:

{ 
    (Measures.Sales, Years.[1999], Products.[Laptop]) ,
    (Measures.Sales, Years.[2001], Products.[Desktop]) 
}

所以你可以看到你最终得到了一个集合的多个项目,以及一个元组的单个项目......

【讨论】:

  • 很好的解释
【解决方案2】:

元组是取自所有维度的单个层次结构成员。 假设Time.[2nd half] 是一个时间维度的元组。同样,我们可以有多个元组,我们用'(',')'括号来表示它们。 例如:

(Time.[2nd half], Color.Dark.Red).

这不过是节点的数学交集。我们可以将数学中的节点表示为 (2,1),就像上面的表达式一样。

现在来集合它只不过是元组的组合。 set 包含一个或多个元组,它也可能为零。我们用 { , } 大括号表示它们。 例如:

{ (Time.[1st half], Color.Dark.Red), (Time.[2nd half], Color.Dark.Blue) }

【讨论】:

  • 背后的逻辑是什么,& * 让我很困惑。
【解决方案3】:

This article 详细描述了术语MemberTupleSet

我会尽量用简单的方式解释一下。

简单地说,tuple 是维度中数据的原子切片,set 是元组的集合。例如,您可以有一个带有元组Sherlock HolmesTom SawyerCLR via C#Code CompleteQuantum Physics for DummiesBooks 维度。
之后,您可以将这些元组组织成命名集,例如 ProgrammingFictionNatural Sciences

[Books].&[Sherlock Holmes]                          -- Tuple
[Books].&[CLR via C#]                               -- Tuple
{ [Books].&[CLR via C#], [Books].&[Code Complete] } -- Set

MDX 中有某些functions 返回集合或元组,知道如何将元组转换为集合通常很有帮助,反之亦然。例如,Item(...) 函数从集合中获取特定的元组。在{ , , } 中包含多个元组将创建一个包含这些元组的集合。

我描述的例子很片面,并没有涵盖整个理论,但它可能会让您对这些概念的工作原理有一个很好的基本了解。

【讨论】:

  • [Books].&[Sherlock Holmes] 是一个元组有点误导,因为它忽略了所有其他维度同时需要一个坐标的事实。另外,() 在解释元组时在 MDX 中的使用很重要。
【解决方案4】:

这是来自http://www.onlineexpert.com/elearning/user/pdf/APPLICATIONDEVELOPMENT/SQL2KOLAP/Ch08.pdf 的另一个很好的解释。

这类似于 Preet Sangha 的回答。

【讨论】:

  • 链接失效
猜你喜欢
  • 2010-11-01
  • 1970-01-01
  • 2013-01-03
  • 2017-05-28
  • 1970-01-01
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
相关资源
最近更新 更多