【问题标题】:MDX Calculated MeasureMDX 计算量度
【发布时间】:2018-03-15 19:16:41
【问题描述】:

下图是我的要求

第一个表至少是粒度的。avg是由Date + Place计算的。所以avg是565 = (2865/5)

来到第二张表。位置 702 的 avg 是 114,这是正确的,对于 704,它是 866,这也是正确的。但最终的 ans 与所有 5 条记录的 avg 相同。

But my output should be like avg at Date + Place level for single Date + Place but when two places are selected it should avg at place level but sum at the total output..the final value should be 980 (sum(114+866))

有人可以解决这个问题吗?

【问题讨论】:

  • 你的源数据表是什么样子的?
  • @AlexisOlson 是没有平均 A 的同一张桌子
  • 您是在开发 Power Pivot、SSAS 多维还是 SSAS 表格?
  • @GregGalloway ssas 多维

标签: ssas mdx mdxstudio mdx-query


【解决方案1】:

与 SSAS 多维中的任何平均值一样,您需要创建两个物理度量。第一个是 A 的总和,即 AggregateFunction=Sum。第二个是行数,即 AggregateFunction=Count。

执行计算的更快方法是使用此计算度量:

SUM(
 EXISTING [Place].[Place].[Place].Members,
 DIVIDE( [Measures].[Sum of A], [Measures].[Count of Rows] )
)

但是,如果您想获得更好的性能并正确处理多选过滤器,请创建一个名为 Avg A 的物理度量,它是 AggregateFunction=Sum off SQL 表中始终为 0 的新列。然后覆盖其中的值使用以下范围说明进行衡量:

SCOPE([Place].[Place].[Place].Members);
     [Measures].[Avg A] = DIVIDE( [Measures].[Sum of A], [Measures].[Count of Rows] );
END SCOPE;

【讨论】:

  • 计算的度量值有效。但我没有测试范围说明。如果性能缓慢会尝试并通知您。
【解决方案2】:

试试这个:

AvgA = SUMX(SUMMARIZE(Table2, Table2[Place], "A", AVERAGE(Table2[A])), [A])

这将按每个PlaceA 进行平均分组,然后将它们汇总为小计。

【讨论】:

  • 啊。我看到了 PowerPivot 标签。 PowerPivot 使用 DAX。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多