TopSum (DMX)
累積合計が指定された値以上になるテーブルの最上位行を、ランクの減少順 (降順) に返します。
構文
TopSum(<table expression>, <rank expression>, <sum>)
適用対象
<table column reference> などのテーブルを返す式、またはテーブルを返す関数です。
戻り値の型
<table expression>
説明
TopSum 関数は、<rank expression> 値の合計が <sum> 引数によって指定された合計以上になるように、各行の <rank expression> 引数の結果値に基づいてランクの減少順に最上位の行を返します。 TopSum は、指定された合計の値に一致するまで、可能性のある最も小さい要素数を返します。
使用例
次の例では、「基本的なデータ マイニング チュートリアル」で作成した Association モデルに対する予測クエリを作成します。
TopPercent の動作を理解するには、最初に、入れ子になったテーブルのみを返す予測クエリを実行すると役立つ場合があります。
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 |
TopSum 関数は、このクエリの結果を受け取り、最大値の行から順に、合計して指定されたカウントになるまで返します。
SELECT
TopSum
(
Predict([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),
$PROBABILITY,
.5)
FROM
[Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t
TopSum 関数の最初の引数はテーブル列の名前です。 この例では、Predict 関数を呼び出して INCLUDE_STATISTICS 引数を使用することで、入れ子になったテーブルが返されます。
TopSum 関数の 2 番目の引数は、結果の並べ替えに使用する、入れ子になったテーブルの列です。 この例では、INCLUDE_STATISTICS オプションによって $SUPPORT 列、$PROBABILTY 列、および $ADJUSTED PROBABILITY 列が返されます。 この例では $PROBABILITY を使用して、合計して 50% 以上の確率になる行を返します。
TopSum 関数の 3 番目の引数は、対象の合計を倍精度浮動小数点数として指定します。 合計が 50% の確率となる上位の製品の行を取得するには「5」と入力します。
例の結果を次に示します。
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… |
注 この例は、[TopSum] の使用方法を示すことだけを目的としています。 データセットのサイズに応じて、このクエリの実行には長い時間がかかる場合があります。