TopSum (DMX)
適用対象:SQL Server Analysis Services
累積合計が指定された値以上になるテーブルの最上位行を、ランクの減少順 (降順) に返します。
構文
TopSum(<table expression>, <rank expression>, <sum>)
適用対象
テーブルを返す式 ( <テーブル列参照>テーブルを返す関数など)。
返り値の種類
<table 式>
解説
TopSum 関数は、各行の <rank 式>引数の評価された値に基づいてランクの最も高い行を返します。これにより<rank 式>値の合計は、引数 <sum> で指定された合計以上になります。 TopSum は、指定した合計値を満たしながら、可能な限り最小の要素数を返します。
例
次の例では、 Basic データ マイニング チュートリアルを使用して、構築したアソシエーション モデルに対して予測クエリを作成します。
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
Note
この例では、入力として指定された値には単一引用符が含まれているため、別の単一引用符を先頭に付けてエスケープする必要があります。 エスケープ文字を挿入するための構文がわからない場合は、予測クエリ ビルダーを使用してクエリを作成できます。 ドロップダウン リストから値を選択すると、必要なエスケープ文字が挿入されます。 詳細については、「 データ マイニング デザイナーでのシングルトン クエリの作成」を参照してください。
結果の例:
モデル | $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 | 367 | 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 番目の引数は、ターゲットの合計を double として指定します。 確率の合計が 50% の上位積の行を取得するには、「.5」と入力します。
結果の例:
モデル | $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 の使用方法を示すためにのみ提供されています。 データ セットのサイズによっては、このクエリの実行に時間がかかる場合があります。