MDXサブ選択
副選択は、FROM句内のプライマリSELECT文内にネストされたセカンダリSELECT文です。 その目的は、スキャンされるデータの量を削減または除外することです。 副選択を使用すると、部分集計を必要とする問合せを効果的に処理できます。
構文
副選択を使用するための構文は、MDX問合せ形式のコンテキストで示されます:
[<with_section>]
SELECT <axis_specification>
[, <axis_specification>...]
<subselect>
[WHERE [<slicer_specification>]]
ここで、<subselect>
は次のとおりです:
FROM
(SELECT <axis_specification>
[, <axis_specification>...]
FROM <cube_specification>)
ノート
サブ選択で使用できるメンバーには、次のガイドラインが適用されます:
-
任意の世代またはレベルから選択できます。 子孫の集計演算子が分析され、結果がフィルタで除外される可能性があります。 子孫演算子が
~
(非連結)で、その子孫に共有メンバーまたは共有メンバーの参照メンバーがない場合、そのサブ階層は結果から除去されます。 同様に、ブロック・ストレージ階層内の保管済のlevel-0以外のメンバーは、集計の唯一のコントリビュータであり、その子は依存性として扱われません。 -
WITHセクションで定義された計算済メンバーにすることができます。
-
式を使用できます。 式のコントリビュータは分析されますが、子孫は分析されません。
-
値を戻す関数は、評価されません(「数値を返すMDX関数」を参照)。また、データを使用して結果を導出する関数でもありません(「セットを返すMDX関数」のデータベース・ベース・セット関数を参照)。 このような式からのすべての依存性が含まれます。
-
メンバーが同じディメンションのものである場合、それらも同じレベルおよび階層にある必要があります(集約ストレージ・データベースにのみ適用されます)。
-
NON EMPTY
構文は、下位選択軸の指定には関係ありません。
例
SELECT
[Digital Cameras/Camcorders].Children ON COLUMNS
FROM
(SELECT
{[Digital Cameras],[Camcorders]} ON COLUMNS
FROM ASOsamp.Sample)
WHERE ([Curr Year],[94706],[Coupon],[Cash],[1 to 13 Years],[Under 20,000],[Sale],[Units],[Mar])