fact table
一部の行の列に値'Null'
があります。この列に基づいてメジャーをaggregate function
設定し、DistinctCount
このメジャーカウントnull
値も。値をカウントしたくないのですが、null
どうすればよいですか?
最も効率的なのは、データ ソース ビューで NULL 値を除外することです (たとえば、名前付きクエリを使用します)。いずれにせよ、個別のカウント メジャーが別のメジャー グループで計算されるため、これはパフォーマンスに大きな影響を与えません。
機能する一般的なソリューションの 1 つは、NULL を除外するテーブルのビューからカウントすることです。これは機能しますが、ファクト テーブルをもう一度スキャンする必要があるに違いありません。
別の解決策は、火で火と戦うようなものです。
null の場合は 0、そうでない場合は 1 の計算列を追加します。
CASE WHEN _DollarsLY IS NULL THEN 0 ELSE 1 END AS _DistinctCountHackLY
次に、キューブ計算で次のようなことができます。
iif(_DistinctCountHackLY=2 or _DollarsLY=null,_DistinctUPCLY-1,_DistinctUPCLY)