0

事实表列的缩减版本是:

id [substitute Pk guid], TestNo, DrugGroupId, Positive

其中 DrugGroupId 引用测量表 id、DrugGroup、Drug、Result

正列定义为

when Result != 'negative' then 1 else 0

DrugGroup 的例子是

  • [guid],安非他明,安非他明,阴性
  • [指导],安非他明,安非他明,安非他明
  • [指导],苯丙胺,甲基苯丙胺,甲基苯丙胺
  • [guid], 大麻素, 大麻素, 阴性
  • [guid],大麻素,大麻素,阳性

我有一个计算过的度量值,即 Sum(Postive) 和事实表 Count 之间的简单比率

[Measures].[Positive] / [Measures].[Count]

然而,我的数据的怪癖是事实表中任何给定的 TestNo 都不是只有一行。

因此,如果结果是否定的,则有 1 行,但是有些药物将有多个正行,每个“药物”在“药物组”下都有一个所以如果数据被非规范化到一个表中,它看起来像

  • [guid],Test1,安非他明,安非他明,阴性
  • [guid],Test2,苯丙胺,甲基苯丙胺,甲基苯丙胺
  • [guid],Test2,安非他明,安非他明,安非他明
  • [guid],Test1,大麻素,大麻素,阳性
  • [guid],Test2,大麻素,大麻素,阴性

请注意,只有在没有对该“药物组”(即大麻)的详细分类时才允许使用“阳性”“药物”

鉴于上面的示例数据,我的比率度量(使用层次结构)将计算(显示在 SharePoint 性能点分析网格报告中)

  • [药物组、药物、结果]、阳性、计数、比率
  • [全部], 3, 5, 60%
  • [安非他明], 2, 3, 33%
  • [安非他明], 1, 1, 100%
  • [甲基苯丙胺], 1, 1, 100%
  • [大麻素], 1, 2, 50%
  • [大麻素], 1, 2, 50%

如您所见,在“DrugGroup”级别计算的比率不正确,因为多个阳性被过度计算,并且在“Drug”级别我只能得到 100% 的药物,除非它们的结果仅为“pos/neg”。

如何构建数据以便在汇总时正确计算结果或创建可以解决问题的比率度量?

4

1 回答 1

0
  • 因为我对不同 TestNo 的计数感兴趣,所以我需要添加一个新度量,它是 TestNo 'Distinct Test Count' 的不同计数。
  • 接下来我需要对阳性测试的不同计数进行测量,
  • 所以我创建了一个计算列,当该行为正时等于 TestNo,否则为 NULL,称为“未调整的正数”
  • 此度量计算 NULL,我无法调整度量的 NULL 处理来解决此问题。
  • 所以我在表'Negative Result'上添加了一个新的计算字段,即正列的逻辑逆
  • 接下来我需要测量负列的最大值,称为“包含 NULL”
  • 接下来我需要一个计算量度 = [Measures].[Count Positive Unadjusted] - [Measures].[Contains NULL],称为“阳性测试计数”
  • 我的比率计算可以变成[Measures].[Positive Test Count]/[Measures].[Distinct Test Count]
于 2012-07-18T21:37:38.327 回答