TopSum (DMX)

Devuelve, en orden decreciente de rango, las filas superiores de una tabla cuyo total acumulado sea al menos un valor especificado.

Sintaxis

TopSum(<table expression>, <rank expression>, <sum>)

Se aplica a

Una expresión que devuelve una tabla, como <table column reference>, o una función que devuelve una tabla.

Tipo devuelto

<table expression>

Comentarios

La función TopSum devuelve las filas superiores en orden decreciente de rango del valor evaluado del argumento <rank expression> para cada fila, de modo que la suma de los valores de <rank expression> sea al menos el total que especifica el argumento <sum>. TopSum devuelve el menor número posible de elementos que siga cumpliendo el valor de suma especificado.

Ejemplos

En el ejemplo siguiente se crea una consulta de predicción con el modelo de asociación que se genera utilizando Tutorial básico de minería de datos.

Para entender cómo funciona TopPercent, puede ser útil ejecutar primero una consulta de predicción que devuelva solo la tabla anidada.

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

Nota

En este ejemplo, el valor proporcionado como entrada contiene una comilla sencilla y, por consiguiente, se debe anteponer como carácter de escape otra comilla sencilla. Si duda de la sintaxis para insertar un carácter de escape, puede utilizar el generador de consultas de predicción para crear la consulta. Al seleccionar el valor en la lista desplegable, se inserta el carácter de escape necesario. Para obtener más información, vea Cómo crear una consulta singleton en el Diseñador de minería de datos.

Resultados del ejemplo:

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

La función TopSum toma los resultados de esta consulta y devuelve las filas con los valores mayores que suman el valor especificado.

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

El primer argumento de la función TopSum es el nombre de una columna de la tabla. En este ejemplo, la tabla anidada se devuelve llamando a la función Predict y utilizando el argumento INCLUDE_STATISTICS.

El segundo argumento de la función TopSum es la columna de la tabla anidada que se utiliza para ordenar los resultados. En este ejemplo, la opción INCLUDE_STATISTICS devuelve las columnas $SUPPORT, $PROBABILTY y $ADJUSTED PROBABILITY. En este ejemplo se utiliza $PROBABILITY para devolver las filas que suman al menos una probabilidad del 50 por ciento.

El tercer argumento de la función TopSum especifica la suma de destino, como valor doble. Para obtener las filas para los primeros productos que suman una probabilidad del 50 por ciento, escriba .5.

Resultados del ejemplo:

Modelo

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

Sport-100

4334

0.29…

0.25…

Water Bottle

2866

0.19…

0.17…

Patch kit

2113

0.14…

0.13…

Nota: este ejemplo sólo se proporciona para mostrar el uso de [TopSum]. Dependiendo del tamaño del conjunto de datos, esta consulta podría tardar mucho tiempo en ejecutarse.