基于事实表列创建新的计算度量
Posted
技术标签:
【中文标题】基于事实表列创建新的计算度量【英文标题】:Create new calculated measure based on fact table column 【发布时间】:2020-11-27 10:15:16 【问题描述】:我被分配在我们的立方体中计算 NPS(净推荐值)。 原来我不完全确定如何处理它。 在我们的事实表中,我们有每个售出商品的 NPS 答案(范围从 0 到 10,没有答案时为 NULL)。公式为:支持者百分比 (>=8) - 批评者百分比 (
我想创建计算成员,但在我看来,它只能在现有度量上创建。并且在进一步计算之前不能以任何方式预先汇总 NPS,因为必须可以访问详细数据以进行计算。此外,与任何其他常规度量一样,此度量必须跨越所有维度。
我应该从哪里开始?所有答案似乎都是在指定的层次结构/维度上创建度量,或者基于已经存在的度量。我需要的是如下内容:
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 是我希望我的计算基于的事实表(产品)列。
【问题讨论】:
【参考方案1】:您可以在 DSV 中将其创建为计算列。 DSV 将充当您表的视图。因此,这将帮助您快速上手。这个新的计算列将在度量中可用。
转到解决方案资源管理器
你会看到你所有的维度和事实
现在右键单击您的事实并单击命名计算。
【讨论】:
您能详细说明一下吗?我正在使用 Visual Studio 开发多维数据集,是否对多维数据集本身中的多维数据集执行 DMV 查询?还是在 sql server 端? 应用 DSV 而不是 DMV。 哇,我想我明白了!谢谢,我不知道 DSV 中存在计算列。这是非常聪明的使用它们。非常感谢!【参考方案2】:我所做的是:
在事实表的每个分区中添加计算列:NPS_promoters (>=9) 和 NPS_detractors ( 在多维数据集结构中添加了新的度量,该度量将计算 NPS 列上的非空值(因此我得到了所有答案的计数), 最后在计算中我添加了新的计算成员,表达式如下:[Measures].[NPS Promoter]/[Measures].[NPS_answers] - [Measures].[NPS Detractor]/[Measures].[NPS_answers]
【讨论】:
以上是关于基于事实表列创建新的计算度量的主要内容,如果未能解决你的问题,请参考以下文章