TOPCOUNT (MDX)
目的の要素数を指定すると、セットを並べ替え、その値の高い方からサブセットを返します。
返りタイプ
構文および詳細
TOPCOUNT(set_expression, element_count, optional_ordering_expression)
以下は、この指定の説明です。
-
set_expression は、メンバまたはタプルのセットに対して評価される式です。
-
element_count は整数リテラルです。
この関数は、この引数を使用して、サブセットで返す要素の数を決定します。この引数が要素数よりも大きい場合、すべての要素が返されます。
-
optional_ordering_expression は、セット要素の順序を決定する数値式です。
通常、ordering_expression は [MEASURES].[measure_name] です。
この関数は、セットの各要素に対してこの式を評価し、セットの要素をこの値の降順で並べ替えます。階層があればすべて無視されます。
この引数を省略すると、この関数はセット要素の現在の順序を使用します (そして、この関数は HEAD 関数のように動作します)。
例
まず、以下のクエリ、およびそれが返す結果について考えてみます。
SELECT MEASURES.[%COUNT] ON 0,
TOPCOUNT(birthd.decade.MEMBERS, 100, MEASURES.[%COUNT]) ON 1 FROM patients
Patient Count
1 1970s 1,520
2 1960s 1,500
3 2000s 1,433
4 1990s 1,413
5 1980s 1,400
6 1950s 1,030
7 1940s 683
8 1930s 572
9 1920s 223
10 2010s 155
11 1910s 71
count_expression がメンバ数よりも大きいため、すべてのメンバが返されます。メンバは、%COUNT メジャーの値の昇順で並べ替えられます。
次に、類似のクエリについて考えてみます。こちらでは、使用する count_expression が 3 に等しくなっています。
SELECT MEASURES.[%COUNT] ON 0,
TOPCOUNT(birthd.decade.MEMBERS, 3, MEASURES.[%COUNT]) ON 1 FROM patients
Patient Count
1 1970s 1,520
2 1960s 1,500
3 2000s 1,433
このクエリは、セットの中で、値の高い方からメンバを 3 つ選択します。