TopCount (DMX)

式によって指定された降順のランクで、指定された件数の上位行を返します。

構文

TopCount(<table expression>, <rank expression>, <count>)

適用対象

<table column reference> などのテーブルを返す式、またはテーブルを返す関数です。

戻り値の型

<table expression>

説明

<rank expression> 引数で指定された値により、<table expression> 引数で指定された行の降順のランクが判定され、最上位から数えて <count> 引数で指定された件数分の上位行が返されます。

TopCount 関数は、結合型の予測を可能にするために導入されました。一般に、SELECT TOP 句と ORDER BY 句を含むステートメントと同じ結果が得られます。 多数の予測を返す指定をサポートする Predict (DMX) 関数を使用すると、結合型の予測のパフォーマンスが向上します。

ただし、TopCount を使用することが必要になる場合もあります。 たとえば、DMX では、下位選択ステートメントに TOP 修飾子を指定できません。 PredictHistogram (DMX) 関数でも、TOP の追加はサポートされません。

使用例

次の例は、「基本的なデータ マイニング チュートリアル」を使用して作成した Association モデルに対する予測クエリです。 これらのクエリは同じ結果を返しますが、1 つ目の例では TopCount を使用し、2 つ目の例では Predict 関数を使用します。

TopCount の動作を理解するには、最初に、入れ子になったテーブルのみを返す予測クエリを実行すると役立つ場合があります。

SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 10)
FROM 
     [Association]
NATURAL PREDICTION JOIN
SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t
注意

この例では、入力値として指定された値には単一引用符が含まれているため、この単一引用符の前にもう 1 つ単一引用符に追加してエスケープする必要があります。 エスケープ文字を挿入するための構文がわからない場合は、予測クエリ ビルダーを使用してクエリを作成できます。 ドロップダウン リストから値を選択すると、必要なエスケープ文字が挿入されます。 詳細については、「データ マイニング デザイナーでの単一クエリの作成」を参照してください。

例の結果を次に示します。

Model

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

Sport-100

4334

0.291283016

0.252695851

Water Bottle

2866

0.192620472

0.175205052

Patch kit

2113

0.142012232

0.132389356

Mountain Tire Tube

1992

0.133879965

0.125304948

Mountain-200

1755

0.117951475

0.111260823

Road Tire Tube

1588

0.106727603

0.101229538

Cycling Cap

1473

0.098998589

0.094256014

Fender Set - Mountain

1415

0.095100477

0.090718432

Mountain Bottle Cage

1367

0.091874454

0.087780332

Road Bottle Cage

1195

0.080314537

0.077173962

TopCount 関数は、このクエリの結果を受け取り、最小値の行から順に、指定された数の行を返します。

SELECT 
TopCount
    (
    Predict ([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),
    $SUPPORT,
    3)
FROM 
     [Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t

TopCount 関数の最初の引数はテーブル列の名前です。 この例では、Predict 関数を呼び出して INCLUDE_STATISTICS 引数を使用することで、入れ子になったテーブルが返されます。

TopCount 関数の 2 番目の引数は、結果の並べ替えに使用する、入れ子になったテーブルの列です。 この例では、INCLUDE_STATISTICS オプションによって $SUPPORT 列、$PROBABILTY 列、および $ADJUSTED PROBABILITY 列が返されます。 この例では、$SUPPORT を使用して結果に順位を付けます。

TopCount 関数の 3 番目の引数は、返す行数を整数で指定します。 $SUPPORT で順位が付けられた上位 3 製品を取得するには、「3」と入力します。

例の結果を次に示します。

Model

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

Sport-100

4334

0.29…

0.25…

Water Bottle

2866

0.19…

0.17…

Patch kit

2113

0.14…

0.13…

ただし、この種のクエリは、実稼働設定でのパフォーマンスに影響する可能性があります。 これは、クエリによってアルゴリズムからすべての予測のセットが返され、これらの予測が並べ替えられて上位 3 件が返されるためです。

次の例は、同じ結果を返すが実行時間が大幅に短縮される代替ステートメントを示しています。 この例では、TopCount を、引数として多数の予測を受け入れる Predict 関数に置き換えています。 また、$SUPPORT キーワードを使用して、入れ子になったテーブル列を直接取得しています。

SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3, $SUPPORT)

結果には、サポート値に基づいて並べ替えられた上位 3 件の予測が含まれます。 $SUPPORT を $PROBABILITY または $ADJUSTED_PROBABILITY に置き換えると、確率または調整済みの確率で順位付けされた予測を取得できます。 詳細については、「Predict (DMX)」を参照してください。

関連項目

参照

関数 (DMX)

一般的な予測関数 (DMX)

BottomCount (DMX)

TopPercent (DMX)

TopSum (DMX)