HIERARCHIZE (MDX)
セットを指定すると、階層順に (階層で指定された順序で) セットを返します。
返りタイプ
構文および詳細
HIERARCHIZE(set_expression)
または、以下のようにします。
HIERARCHIZE(set_expression, POST)
以下は、この指定の説明です。
-
set_expression は、メンバのセットに対して評価される式です。
-
POST を指定すると、子メンバがその親の前になります。これは、自然な順序の逆順と呼ばれます。
セット・メンバがさまざまな階層内にある場合、階層そのものの順序は不確定になります。つまり、一部のメンバが階層 A にあり、他のメンバが階層 B にある場合、A のメンバは階層順に連続してリストされ、B のメンバも階層順に連続してリストされますが、全体として A のメンバと B のメンバのいずれが先かを定める規則はありません。
例
階層内では、階層順は以下のように決定されます。
-
ディメンジョンの All メンバがある場合は、これが最初になります。
-
次のメンバは、その階層の最高レベルの最初のメンバです。
-
次のメンバは、そのメンバの最初の子です。
以降、同様に繰り返されます。例えば、以下の階層を考えてみます。
これらのメンバの全体の階層順を表示するには、以下のクエリを使用します。これは、これらのメンバが属するディメンジョンのすべてのメンバで構成されるセットを使用します。
SELECT MEASURES.[%COUNT] ON 0, HIERARCHIZE(homed.members) ON 1 FROM patients
Patient Count
1 32006 2,272
2 Juniper 1,155
3 Spruce 1,117
4 32007 1,111
5 Redwood 1,111
6 34577 3,399
7 Cypress 1,150
8 Magnolia 1,111
9 Pine 1,138
10 36711 1,069
11 Centerville 1,069
12 38928 2,149
13 Cedar Falls 1,045
14 Elm Heights 1,104
以下の例は、Home City レベルおよび Home ZIP レベルのいくつかのメンバのセットを作成し、HIERARCHIZE 関数を使用して、これらのメンバを階層順に配置します。
SELECT MEASURES.[%COUNT] ON 0,
HIERARCHIZE({homed.36711, homed.38928, homed.[elm heights], homed.Spruce}) ON 1
FROM patients
Patient Count
1 36711 1,069
2 Spruce 1,117
3 38928 2,149
4 Elm Heights 1,104
一方、次の例では POST キーワードを使用しています。
SELECT MEASURES.[%COUNT] ON 0,
HIERARCHIZE({homed.36711, homed.38928, homed.[elm heights], homed.Spruce}, POST) ON 1
FROM patients
Patient Count
1 36711 1,069
2 Spruce 1,117
3 Elm Heights 1,104
4 38928 2,149