提问者:小点点

按部分相关维度分组计算的成员聚合


我使用的pentahoCE4.8与赛库插件2.6使用蒙德里安3.6.5.

在蒙德里安模式中,我定义了一个具有计算成员的虚拟立方体,该成员由两个虚拟度量组成。这些虚拟度量来自两个具有两个共同维度的立方体。其中一个立方体具有退化的维度,该维度也用于虚拟立方体。

我想按一个维度对计算成员进行分组,其中只有一个虚拟度量值与之相关,但我在这一点上失败了。

伪架构:

<Time Dimension>

<Cube 1>
  <Dimension Usage: "Time Dimension"> 
  <Degenerated Dimension> 
  <Measure 1>
</Cube1>

<Cube 2>
  <Dimension Usage: "Time Dimension"> 
  <Measure 2>
</Cube 2>

<Virtual Cube>
  <Virtual Measure "Cube 1 Measure 1"> 
  <Virtual Measure "Cube 2 Measure 2"> 
  <Virtual Dimension "Time Dimension"> 
  <Virtual Dimension "Cube 1 Degenerated Dimension" 
  <Calculated Member: [Virtual Measure "Cube 1 Measure 1"] / [Virtual Measure "Cube 2 Measure 2"]
</Virtual Cube>

在saiku中,只要我不使用“Cube 1退化维度”,我就会得到虚拟和计算度量的结果。如果我在Row/Colum或作为过滤器使用它,则仅的值

有没有一种方法/变通方法可以实现这一点,也显示了这个维度的CM?因为理论上蒙德里安可以做以下事情:

  1. 根据“Cube 1退化维度”和时间维度获取虚拟度量“Cube 1 Measure 1”,最后聚合值。
  2. 仅获取依赖于时间维度的虚拟度量“立方体2度量2”。
  3. 进行计算(Devide"Cube 1 Measure 1"/"Cube 2 Measure 2")

共1个答案

匿名用户

我找到了解决问题的方法:

像这样使用ValidMeasure()函数:

    <Calculated Member: [Virtual Measure "Cube 1 Measure 1"] / ValidMeasure([Virtual Measure "Cube 2 Measure 2"])>

有效度量函数将告诉蒙德里安,该度量具有可以忽略的非连接维度。度量2将与其他应用的维度连接,并将获得一个值,然后可以用于计算。