NonEmptyCount
#Missing以外の値に評価されるセット内のタプルの数を返します。 各タプルが評価され、この関数によって返されるカウントに含められます。 数値式が指定されている場合は、すべてのタプルのコンテキストで評価され、#Missing以外の値の数が返されます。
集約ストレージ・データベースでは、NonEmptyCount MDX関数が最適化されているため、データベースを一度のみスキャンすることで、すべてのセルの個別カウントの計算を実行できます。 この最適化を使用しない場合、データベースは、個別の数に対応するセルの数と同じ回数スキャンされます。 NONEMPTYCOUNT最適化は、アウトライン・メンバー式の構文が次の場合にトリガーされます:
NONEMPTYCOUNT(set, measure, exclude_missing)
構文
NonEmptyCount ( set [,numeric_value_expression [, exclude_missing ]] )
パラメータ
- set
-
タプルをカウントするセット。
- numeric_value_expression
-
オプション。 (「MDX文法ルール」を参照。)
- exclude_missing
-
オプション。 SetのメンバーのMeasure値が欠落している場合に返されるカウント値が欠落していることを示すフラグ。
ここで:
-
Set: 保管されたディメンションの1つのディメンション・セットです。
-
Measure: ストアド・メジャーです。
exclude_missingパラメータは、個別カウント計算を実行するメトリックを問い合せる問合せのパフォーマンスを向上させることで、集計データベースでのNonEmptyCount最適化をサポートします。 詳細は、このトピックの例2を参照してください。
デフォルトでは、SetのすべてのメンバーのMeasure値が欠落している場合、ゼロの値が戻されます。
-
例
例 1
次の問合せ
With
Member [Measures].[Number Of Markets]
as 'NonEmptyCount (Market.Levels(0).Members, Sales)'
Select
{[Measures].[Number Of Markets]} on Columns,
{[100].Children, [200].Children} on Rows
FROM Sample.Basic
グリッドを返します:
表4-117 MDXからの出力グリッドの例
(軸) | 市場数 |
---|---|
100-10 | 20 |
100-20 | 16 |
100-30 | 8 |
200-10 | 20 |
200-20 | 17 |
200-30 | 9 |
200-40 | 3 |
例 2
集約ストレージ・データベースでは、エンティティ(顧客や製品など)の個別の数をカウントするのが一般的です。 式メンバーまたは計算済メンバーを定義することで、個別のカウントを実行できます。 たとえば、次の式とともに使用する式メンバー[DistinctCustomerCnt]
を追加して、製品を購入した個別の顧客の数を計算できます。
NONEMPTYCOUNT(Customer.Levels(0).Members, [Units])
次のMDX問合せは、製品の数と同じ回数データベースをスキャンし、製品ごとに個別の顧客数を評価します:
SELECT
{[DistinctCustomerCnt]} on COLUMNS,
Products.Levels(0).Members on ROWS