Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

TOPPERCENT

全体の合計に適用される切り捨て値を指定すると、セットを並べ替え、その値の高い方からサブセットを返します。

返りタイプ

この関数は、使用されるセットに応じて、メンバまたはタプルセットを返します。

構文および詳細

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% を下回ります)。

関連項目

FeedbackOpens in a new tab