根据事实 table 列创建新的计算度量

Create new calculated measure based on fact table column

我被分配去计算我们多维数据集中的 NPS(净推荐值)。 原来我不完全确定如何处理它。 在我们的事实 table 中,我们对每件售出的商品都有 NPS 答案(范围从 0 到 10,没有答案时为 NULL)。公式为:推荐者百分比 (>=8) - 反对者百分比 (<=6).

我想创建计算成员,但在我看来,它只能在现有度量上创建。在进一步计算之前,不能以任何方式预先汇总 NPS,因为计算必须可以访问详细数据。此外,此度量必须跨越所有维度,就像任何其他常规度量一样。

我应该从哪里开始?所有的答案似乎都是在指定的 hierarchy/dimension 上创建度量或者基于已经存在的度量。我需要的是如下所示:

CREATE MEMBER CURRENTCUBE.Measures.NPS_score AS 

(COUNT(CASE WHEN [Product].[nps_rating] >= 9 THEN [Product].[nps_rating] ELSE NULL END)/COUNT(CASE WHEN [Product].[nps_rating] >= 0 THEN [Product].[nps_rating] ELSE NULL END))
-
(COUNT(CASE WHEN [Product].[nps_rating] <=6 THEN [Product].[nps_rating] ELSE NULL END)/COUNT(CASE WHEN [Product].[nps_rating] >= 0 THEN [Product].[nps_rating] ELSE NULL END))

其中 nps_rating 是我希望我的计算所基于的事实 table(产品)列。

您可以在 DSV 中将其创建为计算列。 DSV 将充当您的表的视图。因此,这将帮助您完成 quickly.This 新的计算列将在度量中可用。

转到解决方案资源管理器

你会看到你所有的维度和事实

现在右键单击您的事实并单击命名计算。

我所做的是:

  • 在事实表的每个分区中为以下两者添加计算列:NPS_promoters (>=9) 和 NPS_detractors (<=6) - 在 DSV(数据源视图)中,
  • 在多维数据集结构中添加了新度量,该度量将计算 NPS 列上的非空值(因此我计算了所有答案),
  • 最后,我在计算中添加了新的计算成员,表达式如下:
[Measures].[NPS Promoter]/[Measures].[NPS_answers] - [Measures].[NPS Detractor]/[Measures].[NPS_answers]