首页 文章

动态使用MDX AVG功能

提问于
浏览
1

任何人都有关于如何构建动态平均度量的建议 - 它没有指定特定切片,而是使用您当前的视图?我在前端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 回答

  • 0

    对不起,我的第一个建议是错误的 . 如果您无权访问OLAP多维数据集,则无法为此目的编写任何mdx查询(恕我直言) . 因为,您在此访问级别中没有任何详细数据(来自事实表),并且您只能使用多维数据集中的聚合数据和维度 . 否则(如果您有权访问olap db),您可以在度量值组中创建此度量标准(非空行数),然后将其用于AVG计算(作为多维数据集中的计算成员或在您的“WITH”部分中) MDX查询) .

相关问题