TOPPERCENT (MDX)
全体の合計に適用される切り捨て値を指定すると、セットを並べ替え、その値の高い方からサブセットを返します。
返りタイプ
構文および詳細
TOPPERCENT(set_expression, percentage, ordering_expression)
-
set_expression は、メンバまたはタプルのセットに対して評価される式です。
-
percentage は、100 以下の数値リテラルです。例えば、15 は 15 パーセントを表します。
この関数は、この引数を使用して、サブセットで返す要素の切り捨てポイントを決定します。
通常は、切り捨てポイントをまたぐメンバが存在します。このメンバは、下位のセットではなく、上位のセットに割り当てられます。その結果、返されるサブセットでは、ordering_expression の累計が、セット全体のパーセンテージを示す percentage よりも大きくなる可能性があります。
-
ordering_expression は、セット要素の順序を決定する数値式です。
この関数は、セットの各要素に対してこの式を評価し、セットの要素をこの値の降順で並べ替えます。階層があればすべて無視されます。
例
まず、以下のクエリ、およびそれが返す結果について考えてみます。
SELECT MEASURES.[%COUNT] ON 0,
TOPPERCENT(birthd.decade.MEMBERS, 100, MEASURES.[%COUNT]) ON 1 FROM patients
Patient Count
1 2000s 157
2 1980s 155
3 1990s 144
4 1960s 136
5 1970s 128
6 1950s 107
7 1930s 56
8 1940s 54
9 2010s 44
10 1920s 13
11 1910s 6
percentage が 100 であるため、すべてのメンバが返されます。
ここで、上記の例のバリエーションを考えてみます。percentage が 50 であるため、上位 50 パーセントが表示されます。
SELECT MEASURES.[%COUNT] ON 0, TOPPERCENT(birthd.decade.MEMBERS, 50, MEASURES.[%COUNT]) ON 1 FROM patients
Patient Count
1 2000s 157
2 1980s 155
3 1990s 144
4 1960s 136
これらのメンバの %COUNT メジャーの合計は、合計の 50% をわずかに上回ります (1960s が除外された場合は合計は 50% を下回ります)。