0

3つの計算されたメンバーを定義したいと思います。TrackInfoとChartPositionsの2つのテーブルに基づくキューブがあります。チャート位置テーブルは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で利用可能なデモ キューブで動作します。これは非常に標準的な MDX であるため、AS と同じにする必要があります。Generate関数でアイデアが得られると思います。次に、このセットを軸に配置する代わりに、フィルタリングされたセットを Count() する計算メジャーを作成できます (デモの目的で)。

于 2012-05-26T06:52:36.363 に答える