0

fact table一部の行の列に値'Null'があります。この列に基づいてメジャーをaggregate function設定し、DistinctCount

このメジャーカウントnull値も。値をカウントしたくないのですが、nullどうすればよいですか?

4

2 に答える 2

5

最も効率的なのは、データ ソース ビューで NULL 値を除外することです (たとえば、名前付きクエリを使用します)。いずれにせよ、個別のカウント メジャーが別のメジャー グループで計算されるため、これはパフォーマンスに大きな影響を与えません。

于 2013-02-11T09:35:33.657 に答える
1

機能する一般的なソリューションの 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)
于 2013-05-03T19:59:29.873 に答える