NonEmptySubset

EssbaseのMDX NonEmptySubset()関数は、後続の分析取得の前にセットのサイズを減らします。すべてのタプルが空でないと評価される入力セットのサブセットを返します。空でないことのチェックには、オプションの値式を指定できます。

この関数は、空でない組合せのセットが小さいことがわかっている大きなセットに基づく問合せを最適化するのに役立ちます。NonEmptySubsetは、メトリックが存在するセットのサイズを縮小します。たとえば、特定のユニットの子孫の空でないサブセットを要求できます。

構文

NonEmptySubset (set [, value_expression [, dimension...]])

パラメータ

set

削減するセット

value_expression

値式。理想的には、格納されたメンバーまたは単純な式。set内のタプルごとに、value_expressionが空でない場合、タプルはサブセットの一部として返されます。それ以外の場合は削除されます。

dimension

空でないサブセットを返す1つ以上の(カンマ区切りの)ディメンション

ノート

Value_expressionを使用する場合は、保存されたメンバーまたは単純な式にする必要があります。value_expressionが複雑な式の場合、空でないサブセットの取得は最適化されません。

次のMDX問合せは、Units (パッケージ当たりのアイテム)の観点から下位10個の製品を取得し、そのセットのCrossJoinと[Albany - NY]のレベル0メンバー(郵便番号)を返します。

WITH SET Bottom_10 
AS '
 BottomCount(
  Leaves(Products),
  10,
  Units
 )
'
SELECT 
 {Units} 
ON COLUMNS,
 NonEmptySubset(CrossJoin(Bottom_10, Leaves([Albany - NY])))
ON ROWS
FROM Asosamp.Basic

前述の問合せは、次の出力を返します:

表4-118 MDX例からの出力グリッド

(軸) 単位
Digital Cameras,12201 4
Camcorders,12201 3
Photo Printers, 12201 2
Digital Recorders, 12201 2
Desktops,12201 3
Digital Cameras,12212 5
Camcorders,12212 2
Photo Printers, 12212 3
Flat Panel, 12212 1
HDTV,12212 1
Home Theater, 12212 1
Desktops, 12212 2
Notebooks,12212 1
Digital Cameras,12223 1
Camcorders,12223 1
Photo Printers,12223 4
HTDV,12223 1
Notebooks,12223 1
Camcorders,12229 4
HDTV,12229 1
Home Theater,12229 3
Desktops,12229 1
Digital Cameras,12249 2
Photo Printers,12249 3
Projection TVs,12249 1
HDTV,12249 2
Home Theater,12249 1
Digital Recorders,12249 1
Notebooks,12249 1
Camcorders,12257 2
Photo Printers,12257 4
Projection TVs,12257 2
HDTV,12257 1
Home Theater,12257 3
Digital Recorders,12257 1