任何人都有关于如何构建动态平均度量的建议 - 它没有指定特定切片,而是使用您当前的视图?我在前端OLAP查看器(Strategy Companion)中工作,我需要一个基于当前在数据视图中过滤的维度的“动态”实现 .
我的事实表看起来像这样:
Key AmountA IndicatorA AmountB Other Data
1 5 1 null 25
2 6 1 null 52
3 7 1 2 106
4 null 0 4 108
现在我可以为“[Measures] . [AmountA]”指定一个简单的平均值“[Measures] . [AmountA] / [Measures] . [IndicatorA]”哪个效果很好 - “[IndicatorA]”总计为“[AmountA]”的非空值 . 无论在视图中选择了哪个维度,这也很有用 - 它总是除以已过滤的行数 .
但是[AmountB]怎么样?我没有空指标列 . 对于我当前视图中已过滤的任何行,我想获得[AmountB]的平均值 . 如果我尝试使用行数作为一个简单的公式(伪造代码“[Measures] . [AmountB] / Count([Measures] . [Key])”)我得到错误的结果,因为它计算所有的平均值为空行 .
因此,我需要一种方法来使用AVG函数来指定[AmountB]的平均值,而不是“我当前正在过滤的任何行,基于我当前使用的任何维度” . 如何指定此动态集?
我已经尝试了AVG功能的几种不同用途,它们要么返回null,要么归结为大数,显然不是我想要的平均值 .
谢谢 - 马特
1 回答
对不起,我的第一个建议是错误的 . 如果您无权访问OLAP多维数据集,则无法为此目的编写任何mdx查询(恕我直言) . 因为,您在此访问级别中没有任何详细数据(来自事实表),并且您只能使用多维数据集中的聚合数据和维度 . 否则(如果您有权访问olap db),您可以在度量值组中创建此度量标准(非空行数),然后将其用于AVG计算(作为多维数据集中的计算成员或在您的“WITH”部分中) MDX查询) .