Compartilhar 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.

Sintaxe

  
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 especificado no <argumento de contagem> é retornado.

A função TopCount foi originalmente introduzida 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 você ainda pode precisar usar o TopCount. Por exemplo, o DMX não dá suporte ao qualificador TOP em uma instrução sub-select. 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 no modelo de Associação que você cria usando o Tutorial de Mineração de Dados Básicos. As consultas retornam os mesmos resultados, mas o primeiro exemplo usa TopCount e o segundo exemplo usa a função Predict.

Para entender como TopCount funciona, pode ser útil primeiro executar uma consulta de previsão que retorne 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 4,334 0.291283016 0.252695851
Water Bottle 2,866 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 1.588 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 1,195 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 da 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 número inteiro. Para obter os três principais produtos, ordenados por $SUPPORT, digite 3.

Resultados do exemplo:

Modelar $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4,334 0.29... 0.25...
Water Bottle 2,866 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 argumento. Este exemplo também usa a palavra-chave $SUPPORT para recuperar diretamente a coluna da 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 Prever (DMX).

Confira também

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