Share via


TopCount (DMX)

Aplica-se a: SQL Server Analysis Services

Retorna o número especificado de linhas superiores em ordem decrescente de classificação, conforme especificado por uma expressão.

Syntax

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

Aplica-se A

Uma expressão que retorna uma tabela, como uma <referência> de coluna de tabela ou uma função que retorna uma tabela.

Tipo de retorno

<expressão de tabela>

Comentários

O valor fornecido pelo <argumento de expressão de classificação> determina a ordem decrescente de classificação para as linhas fornecidas no <argumento de expressão> de tabela e o número de linhas mais altas especificadas no <argumento count> é retornado.

A função TopCount foi introduzida originalmente para habilitar previsões associativas e, em geral, produz os mesmos resultados que uma instrução que inclui as cláusulas SELECT TOP e ORDER BY . Você obterá melhor desempenho para previsões associativas se usar a função Predict (DMX), que dá suporte à especificação de várias previsões a serem retornadas.

No entanto, há situações em que talvez você ainda precise usar TopCount. Por exemplo, o DMX não dá suporte ao qualificador TOP em uma instrução de sub-seleção. A função PredictHistogram (DMX) também não dá suporte à adição de TOP.

Exemplos

Os exemplos a seguir são consultas de previsão em relação ao modelo de Associação que você cria usando o Tutorial básico de mineração de dados. As consultas retornam os mesmos resultados, mas o primeiro exemplo usa TopCount e o segundo exemplo usa a função Predict.

Para entender como o TopCount funciona, pode ser útil primeiro executar uma consulta de previsão que retorna apenas a tabela aninhada.

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  

Observação

Neste exemplo, o valor fornecido como entrada contém uma única aspa e, portanto, deve ser precedido por outra aspa. Se você não tiver certeza da sintaxe para inserção de um caractere de escape, use o Construtor de Consultas de Previsão para criar a consulta. Quando você seleciona o valor da lista suspensa, o caractere de escape exigido é inserido. Para obter mais informações, consulte Criar uma consulta singleton no Designer de mineração de dados.

Resultados do exemplo:

Modelar $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
Tubo de pneu de estrada 1588 0.106727603 0.101229538
Capacete para Ciclismo 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

A função TopCount usa os resultados dessa consulta e retorna o número especificado das linhas de menor valor.

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  

O primeiro argumento para a função TopCount é o nome de uma coluna de tabela. Neste exemplo, a tabela aninhada é retornada chamando a função Predict e usando o argumento INCLUDE_STATISTICS.

O segundo argumento para a função TopCount é a coluna na tabela aninhada que você usa para ordenar os resultados. Neste exemplo, a opção INCLUDE_STATISTICS retorna as colunas $SUPPORT, $PROBABILTY e $ADJUSTED PROBABILITY. Este exemplo usa $SUPPORT para classificar os resultados.

O terceiro argumento para a função TopCount especifica o número de linhas a serem retornadas, como um inteiro. Para obter os três principais produtos, ordenados por $SUPPORT, digite 3.

Resultados do exemplo:

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

No entanto, esse tipo de consulta pode afetar o desempenho em uma configuração de produção. Isso é porque a consulta retorna um conjunto de todas as previsões do algoritmo, classifica essas previsões e retorna as três principais.

O exemplo a seguir fornece uma instrução alternativa que retorna os mesmos resultados, mas é executada de maneira significativamente mais rápida. Este exemplo substitui TopCount pela função Predict, que aceita várias previsões como um argumento. Este exemplo também usa o $SUPPORT palavra-chave para recuperar diretamente a coluna de tabela aninhada.

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

Os resultados contêm as três principais previsões classificadas pelo valor de suporte. Você pode substituir $SUPPORT por $PROBABILITY ou $ADJUSTED_PROBABILITY para retornar previsões classificadas por probabilidade ou probabilidade ajustada. Para obter mais informações, consulte Predict (DMX).

Consulte Também

Funções (DMX)
Funções de previsão gerais (DMX)
BottomCount (DMX)
TopPercent (DMX)
TopSum (DMX)