TopPercent (DMX)

适用于: SQL Server Analysis Services

TopPercent 函数按排名递减的顺序返回其累积总计至少为指定百分比的表中最靠前的行。

语法

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

应用于

返回表(如表列引用>)<的表达式,或返回表的函数。

返回类型

<表表达式>

备注

TopPercent 函数根据每一行的排名表达式>参数的<计算值返回排名最靠前的行,以便排名表达式>值的总和<至少是百<分比>参数指定的给定百分比。 TopPercent 返回尽可能少的元素数,同时仍满足指定的百分比值。

示例

以下示例针对使用 基本数据挖掘教程生成的关联模型创建预测查询。

若要了解 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  

注意

在本示例中,作为输入而提供的值包含一个单引号;因此,必须通过在该值前面加一个单引号来进行转义。 如果不熟悉有关插入转义符的语法,则您可以使用预测查询生成器创建查询。 从下拉列表中选择值时,会为您插入所需的转义符。 有关详细信息,请参阅在数据挖掘Designer中创建单一查询

示例结果:

建模 $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

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 函数的第二个参数是嵌套表中用于对结果进行排序的列。 在此示例中,INCLUDE_STATISTICS 选项返回 $SUPPORT、$PROBABILTY 和 $ADJUSTED PROBABILITY 列。 此示例使用 $SUPPORT,因为支持值不带有小数,所以很容易进行验证。

TopPercent 函数的第三个参数将百分比指定为双精度。 若要获取总值为支持总数的 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)