0

我想定义 3 个计算成员。我有一个基于 2 个表 TrackInfo 和 Chart Positions 的多维数据集。Chart Positions 表由 36 周列组成,其中包含给定曲目在给定周内在前 100 名列表中的位置(如果歌曲没有进入列表,则为 0):

[Entry ID] FOREIGN KEY,
[1st Week] FLOAT,
[2nd Week] FLOAT,

以此类推,直到第 36 周。

我想计算以下措施:

1) 这首歌进入前 10 名的周数

2) 这首歌进入前 20 名的周数

3)“人气表”,这将通过公式完成:

1 / ((所有非零位置的平均值) * (37 - (列表中的周数)))

谁能帮我解决这些问题?

4

1 回答 1

2

如果没有多维数据集定义来编写一些 MDX 有点困难,但对于 1)我将举一个类似的问题为例 - [东京] 进入前 3 名销售城市的年份:

 select
  [Measures].[Sales] on 0,

  Filter( 

    Generate( [Time].[Year].[Year].members as s1, 
             TopCount( s1.currentMember * [Customers].[City].members, 3, [Measures].[Sales] ) 
    ) as s2,

    IIF( s2.current(1) IS [Customers].[Geography].[City].[Tokyo] , true, false )

  )

  on 1 

  from [Sales]

这适用于icCube中可用的演示立方体;应该与 AS 相同,因为这是非常标准的 MDX。我想你会通过Generate函数明白这一点。然后,您可以创建一个计算度量,它将 Count() 过滤集而不是将这个集放在轴上(出于演示目的)。

于 2012-05-26T06:52:36.363 回答