[英]SSAS Calculated Measure, or Dynamic Set? Average using all
我的事实表包含稀疏数据并有 3 列:(user, movie, 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。
基本上,我们选择的任何维度,都有相应的用户数,它成为分母。
想不通怎么办请帮忙!
通过在此处的 MSDN 论坛上提问可以找到答案。
这是 MDX 的棘手点之一。 您确实希望分母是使用除当前所选电影之外的所有内容的当前上下文的用户数。 您的 [Measures].[Number of Users] 指标是用户的 DistinctCount 吗? 为了使讨论更清晰,我将假设如此。 如果电影层次结构的当前上下文是 m3,则您将获得分母值 2,如您在初始帖子中所述。 要获得您希望的三个值,您需要覆盖当前的电影层次结构上下文,以便平均分数的定义为 [Measures].[Normalized_Score] / ( [Movie].[Movie].[All] , [措施].[用户数量])。 更改[Movie].[Movie].[All] 的定义以适合您的多维数据集,您应该获得正确的分母值
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.