SSAS 数据立方体,如何获得平均值而不是总和作为维度聚合?

SSAS Data Cube, how can I get an average instead of a sum as a dimension aggregation?

我正在使用一个数据立方体,该数据立方体的计算成员是百分比,我需要将该成员的聚合设为平均值而不是总和。

这是 Excel 中的屏幕截图或立方体:

加粗的百分比是一个总和,对于百分比来说没有任何意义。我怎样才能使它们成为分组百分比的平均值?

Unit ID 是一个维度,Order ID 是一个单独的维度。订单包含一组单位 ID。我试图为订单创建一个单独的计算成员,但我不知道如何在 MDX 中表示这个集合,尽管在 SQL 中会很容易。

换句话说,我想在 MDX 中将以下 SQL 语句表示为一个集合:

SELECT [UnitSMA] WHERE [OrderKey] = <OrderKey>

如果答案真的只是代表这个SELECT [UnitSMA] WHERE [OrderKey] = <OrderKey>那么以下就足够了:

EXISTS(
  [fact connectivity].[UnitSMA].MEMBERS 
 ,[fact connectivity].[OrderKey].[<OrderKey>]
)

...所以我猜你的 "in other words" 不正确?


EXISTS - MSDN 在这里:https://msdn.microsoft.com/en-us/library/ms144936.aspx?f=255&MSPPError=-2147217396

如果您通过使用第二个层次结构中的成员来查找一个层次结构中的成员,并且两个层次结构都是同一维度的一部分,那么上面的 Exists 版本就可以了。

如果成员来自不同的维度,那么您需要使用包含第三个参数的 Exists 的第二种形式 - 这是链接两个维度的度量组的名称。

SELECT 聚合中的平均值而不是右下角的总和显示有问题的图片。

更多细节

https://support.office.com/en-us/article/Aggregations-in-Power-Pivot-f36a448a-4962-4baf-baa2-68187b6387ce

(代表 OP 发布答案).

出于某种原因,我不得不在 .dsv 中创建一个新的命名计算,它实际上只是“1”,然后将连通性的移动平均值除以该命名计算的移动平均值。现在它显示正确的聚合。 (仅除以 1,甚至是 1 的移动平均值都不起作用,.dsv 中必须有两个单独的列才能起作用)。