Compartir a través de


TopCount (DMX)

Se aplica a: SQL Server Analysis Services

Devuelve el número especificado de filas superiores en orden decreciente de rango, como lo especifica una expresión.

Syntax

  
TopCount(<table expression>, <rank expression>, <count>)  

Se aplica a

Expresión que devuelve una tabla, como una <referencia> de columna de tabla o una función que devuelve una tabla.

Tipo de valor devuelto

<expresión de tabla>

Comentarios

El valor proporcionado por el <argumento de expresión> de clasificación determina el orden decreciente de clasificación de las filas que se proporcionan en el <argumento de expresión> de tabla y se devuelve el número de filas más principales especificadas en el <argumento count> .

La función TopCount se introdujo originalmente para habilitar predicciones asociativas y, en general, genera los mismos resultados que una instrucción que incluye cláusulas SELECT TOP y ORDER BY . Obtendrá un mejor rendimiento para las predicciones asociativas si usa la función Predict (DMX), que admite la especificación de una serie de predicciones que se van a devolver.

Sin embargo, hay situaciones en las que es posible que tenga que usar TopCount. Por ejemplo, DMX no admite el calificador TOP en una instrucción de selección secundaria. La función PredictHistogram (DMX) tampoco admite la adición de TOP.

Ejemplos

Los ejemplos siguientes son consultas de predicción en el modelo de asociación que se compila mediante el Tutorial básico de minería de datos. Las consultas devuelven los mismos resultados, pero el primer ejemplo usa TopCount y el segundo ejemplo usa la función Predict.

Para comprender cómo funciona TopCount, puede resultar ú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 Crear una consulta Singleton en el Designer de minería de datos.

Resultados de ejemplo:

Modelado $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 TopCount toma los resultados de esta consulta y devuelve el número especificado de las filas con valores más pequeños.

SELECT   
TopCount  
    (  
    Predict ([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),  
    $SUPPORT,  
    3)  
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 TopCount es el nombre de una columna de tabla. En este ejemplo, la tabla anidada se devuelve llamando a la función Predict y usando el argumento INCLUDE_STATISTICS.

El segundo argumento de la función TopCount es la columna de la tabla anidada que se usa 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 para clasificar los resultados.

El tercer argumento de la función TopCount especifica el número de filas que se van a devolver, como un entero. Para obtener los tres productos de la parte superior, ordenados por $SUPPORT, se escribe 3.

Resultados de ejemplo:

Modelado $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.29... 0.25...
Water Bottle 2866 0.19... 0.17...
Patch kit 2113 0.14... 0.13...

Sin embargo, este tipo de consulta podría afectar al rendimiento en una configuración de producción. Esto se debe a que la consulta devuelve un conjunto de todas las predicciones del algoritmo, ordena estas predicciones y devuelve las tres primeras.

En el ejemplo siguiente se proporciona una instrucción alternativa que devuelve los mismos resultados pero se ejecuta significativamente más rápido. En este ejemplo se reemplaza TopCount por la función Predict, que acepta una serie de predicciones como argumento. En este ejemplo también se usa la palabra clave $SUPPORT para recuperar directamente la columna de tabla anidada.

SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3, $SUPPORT)  

Los resultados contienen las tres primeras predicciones ordenadas por el valor de compatibilidad. Puede reemplazar $SUPPORT con $PROBABILITY o $ADJUSTED_PROBABILITY para devolver predicciones clasificadas por probabilidad o ajustar la probabilidad. Para obtener más información, consulte Predicción (DMX).

Consulte también

Funciones (DMX)
Funciones de predicción generales (DMX)
BottomCount (DMX)
TopPercent (DMX)
TopSum (DMX)