3

哪些 OLAP 工具支持动态、动态地创建维度或层次结构?

例如,层次结构将成员定义为:'Top 5'、'Top 6-10'、'Others'...

计算成员是通常的答案,我正在寻找不同的东西。计算的问题。members 是性能和一致性(例如,您不能将其放入切片器或子查询中)。最重要的是,您必须仔细检查所有其他计算。不破坏其他计算的措施(例如市场份额、时差)

4

1 回答 1

3

在特定查询中,任何允许您定义 MDX 的工具都将允许您使用类似 MDX 的东西,它在 AdventureWorks 多维数据集的 SSAS 中运行:

with set [Top 5 Sales] as
         TopCount([Customer].[City].[City].members, 5, [Measures].[Internet Sales Amount])
     set [Top 6-10 Sales] as
         TopCount([Customer].[City].[City].members, 10, [Measures].[Internet Sales Amount]) - [Top 5 Sales]
     set [Others Sales] as
         [Customer].[City].[City].members - TopCount([Customer].[City].[City].members, 10, [Measures].[Internet Sales Amount])
member [Customer].[City].[Top 5] as
     Aggregate([Top 5 Sales], Measures.CurrentMember)
     member [Customer].[City].[Top 6-10] as
     Aggregate([Top 6-10 Sales], Measures.CurrentMember)
     member [Customer].[City].[Others] as
     Aggregate([Others Sales], Measures.CurrentMember)

select { [Measures].[Internet Sales Amount], [Measures].[Internet Order Quantity] }
       on columns,
       non empty
       { [Customer].[City].[All Customers], [Customer].[City].[Top 5] }
       +
       [Top 5 Sales]
       +
       { [Customer].[City].[Top 6-10] }
       +
       [Top 6-10 Sales]
       +
       { [Customer].[City].[Others] }
       +
       Order([Others Sales], [Measures].[Internet Sales Amount], BDESC)
       on rows
  from [Adventure Works]

但是我不知道没有您编写 MDX 的工具具有开箱即用的此功能。此外,在多维数据集中实现这一点很困难,因为您需要度量的上下文和在特定查询中工作的属性 -[Measures].[Internet Sales Amount]以及[Customer].[City]在我上面的 MDX 中,当您定义多维数据集时它们不可用,但只有当您有特定查询时。

于 2013-09-06T18:09:29.560 回答