SSAS计算的度量或动态集?平均使用全部

时间:2012-12-02 16:36:48

标签: sql-server ssas average

我的事实表包含稀疏数据并且有3列:(用户,电影, normalized_score )。例如:

  ('u1', 'm3', 0.3)
  ('u1', 'm4', 0.1)
  ('u1', 'm7', 0.6)
  ('u2', 'm1', 0.33)
  ('u2', 'm3', 0.33)
  ('u2', 'm7', 0.33)
  ('u3', 'm2', 0.6)
  ('u3', 'm6', 0.4)
  ...

如您所见,每个用户的sum(normalized_score)= 1。

我有两个方面:
- User_info (user, Cat_Level1, Cat_Level2)
- Movie_info (movie, Genre_Level1, Genre_Level2)

我希望通过平均分数获得热门电影,其中平均值的计算会考虑所选维度中的所有关联用户。

例如,在最低级别,average('m3')以上为(0.3+0.3)/3。请注意,分母 3 ,而不是2。

基本上,我们选择的任何维度,相应的#of用户,都会成为分母。

无法弄清楚如何。请帮忙!

1 个答案:

答案 0 :(得分:-1)

通过在MSDN论坛here上提问来找到答案。

  

这是MDX的棘手问题之一。你真的想要   分母是使用当前上下文的用户数   除了当前选定的电影以外的一切是你的   [Measures]。[用户数]指标是DistinctCount的用户?我   这样做是为了让讨论更加清晰。如果是当前的   电影层次结构的上下文是m3,你会得到一个分母   您在初始帖子中说明的值为2。获得价值   你想要的三个,你需要覆盖当前的电影   层次结构上下文,以便您的平均分数的定义   是[测量]。[Normalized_Score] /( [电影]。[电影]。[全部] ,   [措施]。[用户数])。改变了的定义    [电影]。[电影]。[全部] 适合您的多维数据集,您应该这样做   得到正确的分母值