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(Positive) とファクト テーブル Count の間の単純な比率である、計算されたメジャーがあります。

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

ただし、私のデータの癖は、ファクト テーブル内の特定の TestNo に 1 行しかないことです。

したがって、結果が負の場合は1行ですが、一部の薬物には複数の正の行があり、「DrugGroup」の下の「Drug」ごとに1行あるため、データが1つのテーブルに非正規化された場合、次のようになります

  • [guid]、Test1、アンフェタミン、アンフェタミン、陰性
  • [guid]、Test2、アンフェタミン、メタンフェタミン、メタンフェタミン
  • [ガイド]、Test2、アンフェタミン、アンフェタミン、アンフェタミン
  • [guid]、Test1、カンナビノイド、カンナビノイド、陽性
  • [guid]、Test2、カンナビノイド、カンナビノイド、陰性

「陽性」「薬物」は、その「薬物グループ」の詳細な内訳がない場合にのみ許可されることに注意してください (つまり、大麻)

上記の例のデータが与えられた場合、(階層を使用して) 私の比率測定は計算されます (SharePoint パフォーマンス ポイント分析グリッド レポートに表示されます)。

  • [DrugGroup,Drug,Result], 陽性, カウント, 比率
  • [すべて]、3、5、60%
  • [アンフェタミン]、2、3、33%
  • [アンフェタミン]、1、1、100%
  • [メタフェタミン]、1、1、100%
  • [カンナビノイド]、1、2、50%
  • [カンナビノイド]、1、2、50%

ご覧のとおり、複数の陽性が過大にカウントされているため、「DrugGroup」レベルで比率が正しく計算されず、「Drug」レベルでは、結果が「陽性/陰性」のみでない限り、薬物に対して 100% しか得られません。

ロールアップしたときに結果が正しく計算されるようにデータを構造化するか、問題を整理できる比率メジャーを作成するにはどうすればよいですか?

4

1 に答える 1

0
  • 個別のTestNoのカウントに関心があるため、TestNoの個別のカウントである新しいメジャー「個別のテストカウント」を追加する必要がありました。
  • 次に、陽性テストの明確な数の測定が必要でした、
  • そこで、行が正の場合はTestNoに等しく、それ以外の場合はNULLに等しい計算列を作成しました。これは、「CountPositiveUnadjusted」と呼ばれます。
  • このメジャーはNULLをカウントし、これを修正するためにメジャーのNULL処理を調整できませんでした。
  • そこで、Positive列の論理的な逆である「NegativeResult」テーブルに新しい計算フィールドを追加しました。
  • 次に、「ContainsNULL」と呼ばれるNegative列のMaxのメジャーが必要でした
  • [Measures].[Count Positive Unadjusted] - [Measures].[Contains NULL]次に、「正のテストカウント」と呼ばれる=の計算されたメジャーが必要でした
  • 私の比率計算は次のようになります[Measures].[Positive Test Count]/[Measures].[Distinct Test Count]
于 2012-07-18T21:37:38.327 に答える