TopPercent (DMX)
La función TopPercent devuelve, en orden decreciente de rango, las filas superiores de una tabla cuyo total acumulado sea al menos un porcentaje especificado.
Sintaxis
TopPercent(<table expression>, <rank expression>, <percent>)
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 TopPercent 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 porcentaje que especifica el argumento <percent>. TopPercent devuelve el menor número posible de elementos que cumpla el valor de porcentaje 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 sólo 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 TopPercent toma los resultados de esta consulta y devuelve las filas con los valores mayores que suman el porcentaje especificado.
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
El primer argumento para la función TopPercent 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 TopPercent 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 $SUPPORT porque sus valores no son fraccionarios y, por consiguiente, son más fáciles de comprobar.
El tercer argumento de la función TopPercent especifica el porcentaje, como valor doble. Para obtener las filas de los primeros productos que suman el 50 por ciento de la compatibilidad total, escriba 50.
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… |
Mountain Tire Tube |
1992 |
0.133… |
0.12… |
Nota: este ejemplo sólo se proporciona para mostrar el uso de TopPercent. Dependiendo del tamaño del conjunto de datos, esta consulta podría tardar mucho tiempo en ejecutarse.