次の方法で共有


TopPercent (DMX)

適用対象:SQL Server Analysis Services

TopPercent 関数は、ランクを下げるために、累積合計が少なくとも指定されたパーセンテージであるテーブルの最上位行を返します。

構文

  
TopPercent(<table expression>, <rank expression>, <percent>)  

適用対象

テーブルを返す式 ( <テーブル列参照>テーブルを返す関数など)。

返り値の種類

<table 式>

解説

TopPercent 関数は、各行の <rank 式>引数の評価された値に基づいてランクの最も高い行を返します。<rank 式>値の合計が、<percent> 引数で指定された割合以上になるようにします。 TopPercent は、指定されたパーセント値を満たしながら、可能な限り最小の要素数を返します。

次の例では、 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

TopPercent 関数は、このクエリの結果を受け取り、指定されたパーセンテージを合計する最大の値を持つ行を返します。

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

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

TopPercent 関数の 2 番目の引数は、結果の並べ替えに使用する入れ子になったテーブル内の列です。 この例では、INCLUDE_STATISTICS オプションは、$SUPPORT、$PROBABILTY、および $ADJUSTED PROBABILITY の列を返します。 この例では$SUPPORTを使用します。サポート値は小数部ではないため、検証が簡単です。

TopPercent 関数の 3 番目の引数は、パーセンテージを double として指定します。 サポート全体の 50% に合計する上位製品の行を取得するには、50 を入力します。

結果の例:

モデル $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.29... 0.25...
Water Bottle 2866 0.19... 0.17...
Patch kit 2113 0.14... 0.13...
Mountain Tire Tube 1992 0.133... 0.12...

この例は、TopPercent の使用方法を示すためにのみ提供されています。 データ セットのサイズによっては、このクエリの実行に時間がかかる場合があります。

警告

TOPPERCENT および BOTTOMPERCENT の MDX 関数では、パーセンテージの計算に使用される値に負の数値が含まれている場合、予期しない結果が生成される可能性があります。 この動作は DMX 関数には影響しません。 詳細については、「 BottomPercent (MDX)」を参照してください。

参照

データ マイニング拡張機能 (DMX) 関数リファレンス
関数 (DMX)
一般的な予測関数 (DMX)