动态,动态,OLAP维度

时间:2013-09-05 09:48:15

标签: mdx olap business-intelligence

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

例如,将成员定义为“前5名”,“前6-10名”,“其他人”...

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

1 个答案:

答案 0 :(得分:3)

在特定查询中,任何允许您定义MDX的工具都允许您使用在AdventureWorks多维数据集上的SSAS中运行的此MDX:

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。此外,要在多维数据集中一般性地实现此操作很困难,因为您需要度量的上下文以及在特定查询中使用的属性 - 我的MDX中的[Measures].[Internet Sales Amount][Customer].[City],这些是定义多维数据集时不可用,但仅在您有特定查询时才可用。