TopSum (DMX)
Devuelve, en orden de rango decreciente, 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>
Notas
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 TopSum, 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 solo se proporciona para mostrar el uso de [TopSum]. Según sea el tamaño del conjunto de datos, esta consulta podría tardar mucho tiempo en ejecutarse.