Ssas MDX计算度量

Ssas MDX计算度量,ssas,mdx,mdxstudio,mdx-query,Ssas,Mdx,Mdxstudio,Mdx Query,下面是我在图片中的要求 第一个表至少是粒度。平均值是通过Date+Place计算的。因此平均值是565=(2865/5) 进入第二个表格。第702位的平均值为114,这是正确的,而第704位的平均值为866,这也是正确的。但最终的ans与所有5条记录的平均值相同 但是对于单个日期+地点而言,我的输出应该与日期+地点级别的平均值相似,但是当选择两个地点时,它应该是地点级别的平均值,但在总输出中求和。最终值应该是980(总和(114+866)) 有人能解决这个问题吗?试试这个: AvgA = SU

下面是我在图片中的要求

第一个表至少是粒度。平均值是通过
Date+Place
计算的。因此平均值是
565=(2865/5)

进入第二个表格。第702位的平均值为114,这是正确的,而第704位的平均值为866,这也是正确的。但最终的ans与所有5条记录的平均值相同

但是对于单个
日期+地点
而言,我的输出应该与
日期+地点
级别的平均值相似,但是当选择两个地点时,它应该是地点级别的平均值,但在总输出中求和。最终值应该是980(总和(114+866))

有人能解决这个问题吗?

试试这个:

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

这将取每个
位置分组的平均值
A
,然后将其汇总为小计。

与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;

您的源数据表是什么样子的?@AlexisOlson这是同一个没有平均值的第一个表。您是在开发Power Pivot、SSAS多维还是SSAS表格?@Greggallowy SSAS多维。我看到了PowerPivot标签。PowerPivot使用DAX。计算的度量值有效。但我没有测试scope语句。如果性能缓慢,我将尝试并通知您。