TopCount (DMX)

Aplica-se a: SQL Server Analysis Services

Devolve o número especificado de linhas superiores por ordem decrescente de posição, conforme especificado por uma expressão.

Syntax

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

Aplica-se a

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

Tipo de Retorno

<Expressão da tabela>

Observações

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

A função TopCount foi originalmente introduzida para permitir previsões associativas e, em geral, produz os mesmos resultados que uma afirmação que inclui as cláusulas SELECT TOP e ORDER BY . Obterá melhor desempenho para previsões associativas se usar a função Predict (DMX ), que suporta a especificação de várias previsões para devolver.

No entanto, há situações em que ainda pode precisar de usar o TopCount. Por exemplo, o DMX não suporta o qualificador TOP numa instrução sub-select. A função PredictHistogram (DMX) também não suporta a adição de TOP.

Examples

Os exemplos seguintes são consultas de previsão contra o modelo de Associação que constróis usando o Tutorial Básico de Mineração de Dados. As consultas devolvem os mesmos resultados, mas o primeiro exemplo usa TopCount, e o segundo exemplo usa a função Predict.

Para compreender como funciona o TopCount, pode ser útil primeiro executar uma consulta de previsão que devolve 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  

Note

Neste exemplo, o valor fornecido como entrada contém uma única aspas, e por isso deve ser evitado precedendo-o com outra aspas simples. Se não tiver a certeza da sintaxe para inserir um carácter de escape, pode usar o Prediction Query Builder para criar a consulta. Quando selecionas o valor na lista suspensa, o carácter de escape necessário é inserido para ti. Para mais informações, consulte Criar uma Consulta Singleton no Data Mining Designer.

Exemplos de resultados:

Modelo $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.291283016 0.252695851
Garrafa de Água 2866 0.192620472 0.175205052
Kit de patch 2113 0.142012232 0.132389356
Câmara de pneu de montanha 1992 0.133879965 0.125304948
Mountain-200 1755 0.117951475 0.111260823
Câmara de Ar para Pneus de Estrada 1588 0.106727603 0.101229538
Boné de ciclismo 1473 0.098998589 0.094256014
Fender Set - Montanha 1415 0.095100477 0.090718432
Gaiola de Garrafas da Montanha 1367 0.091874454 0.087780332
Gaiola de Garrafas de Estrada 1195 0.080314537 0.077173962

A função TopCount recolhe os resultados desta consulta e devolve 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 é devolvida 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 usas para ordenar os resultados. Neste exemplo, a opção INCLUDE_STATISTICS devolve as colunas $SUPPORT, $PROBABILITY e $ADJUSTED PROBABILIDADE. Este exemplo usa $SUPPORT para classificar os resultados.

O terceiro argumento da função TopCount especifica o número de linhas a devolver, como um inteiro. Para obter os três produtos principais, conforme encomendado pela $SUPPORT, escreve 3.

Exemplos de resultados:

Modelo $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.29... 0.25...
Garrafa de Água 2866 0.19... 0.17...
Kit de patch 2113 0.14... 0.13...

No entanto, este tipo de consulta pode afetar o desempenho num contexto de produção. Isto acontece porque a consulta devolve um conjunto de todas as previsões do algoritmo, ordena essas previsões e devolve as 3 superiores.

O exemplo seguinte fornece uma instrução alternativa que devolve os mesmos resultados, mas executa significativamente mais rapidamente. Este exemplo substitui o TopCount pela função Predict, que aceita um número de previsões como argumento. Este exemplo também utiliza 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 3 principais previsões ordenadas pelo valor de suporte. Pode substituir $SUPPORT por $PROBABILITY ou $ADJUSTED_PROBABILIDADE para devolver previsões ordenadas por probabilidade ou probabilidade ajustada. Para mais informações, consulte Prever (DMX).