欠落データの操作
MDXを使用してEssbaseキューブを問い合せる場合、軸指定の先頭にNON EMPTYキーワードを使用して、値を含まないセルが問合せの結果に含まれないようにできます。
NON EMPTYを使用した軸指定構文は次のとおりです:
<axis_specification> ::=
[NON EMPTY] <set> ON
COLUMNS | ROWS | PAGES | CHAPTERS |
SECTIONS | AXIS (<unsigned_integer>)
軸に設定された指定の前にオプションのキーワードNON EMPTYを含めると、完全に#MISSING値を含むその軸のスライスが抑制されます。
sliceは、軸上の特定のタプル((Qtr1,
Actual)
など)について、このタプルを他のすべての軸のすべてのタプルと組み合せることで発生するセルで構成されます。 これらのセル値がすべて#MISSINGの場合、NON EMPTYキーワードを使用するとタプルが削除されます。
たとえば、行の1つの値も空でない場合は、行全体が返されます。 行軸の指定の先頭にNON EMPTYを含めると、問合せによって返されるセットから次の行スライスが削除されます:

NON EMPTYでの欠損値の抑制に加えて、次のMDX関数を使用して#MISSINGの結果を処理できます:
-
CoalesceEmpty。#MISSING以外の値の数値式を検索
-
IsEmpty:入力numeric-value-expressionの値が#MISSINGと評価される場合にTRUEを返します
-
平均:オプションのIncludeEmptyフラグを使用しないかぎり、平均から欠損値を除外
NonEmptyCount MDX関数は、#Missing以外の値に評価されるセット内のタプルの数を返します。 各タプルが評価され、この関数によって返されるカウントに含められます。 数値式が指定されている場合は、すべてのタプルのコンテキストで評価され、#Missing以外の値の数が返されます。
集約ストレージ・データベースでのみ、データベースを一度のみスキャンしてすべてのセルの個別カウントの計算を実行できるように、NonEmptyCount関数が最適化されます。 この最適化を使用しない場合、データベースは、個別の数に対応するセルの数と同じ回数スキャンされます。 NonEmptyCountの最適化は、アウトライン・メンバー式の構文が次の場合にトリガーされます:
NONEMPTYCOUNT(set, measure, exclude_missing)
exclude_missingパラメータは、個別カウント計算を実行するメトリックを問い合せる問合せのパフォーマンスを向上させることで、集計データベースでのNonEmptyCount最適化をサポートします。
NONEMPTYMEMBERおよびNONEMPTYTUPLE最適化プロパティを使用すると、MDXは、#MISSINGデータのみを含む非分散値に対する式の実行をスキップしながら、大規模なメンバーまたはタプルのセットを問い合せることができます。
-
計算済メンバーまたは式の先頭で単一のNONEMPTYMEMBERプロパティ句を使用して、nonempty_member_listで指定されたメンバーのいずれかが空の場合に式または計算済メンバーの値が空であることをEssbaseに示します。
-
計算済メンバーまたは式の先頭で単一のNONEMPTYTUPLEプロパティ句を使用して、nonempty_member_listで指定されたタプルのセル値が空の場合に式または計算済メンバーの値が空であることをEssbaseに示します。
入力セットを指定すると、NonEmptySubset MDX関数は、すべてのタプルが空でないと評価されるその入力セットのサブセットを返します。 空でないチェックにはオプションの値式を指定できます。 この関数は、空でない組合せのセットが小さいことがわかっている大きなセットに基づく問合せを最適化するのに役立ちます。 NonEmptySubsetでは、メトリックが存在する場合のセットのサイズが縮小されます。たとえば、特定の単位の子孫の空でないサブセットをリクエストできます。