TopCount (DMX)
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
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 que é fornecido pelo argumento da <expressão de classificação> determina a ordem de classificação decrescente das linhas fornecidas pelo argumento <expressão de tabela>, e o número de linhas superiores especificado no argumento <contagem> é retornado.
A função TopCount foi introduzida originalmente no SQL Server 2000 para permitir previsões associativas e, em geral, produz os mesmos resultados que uma instrução que inclui as cláusulas SELECT TOP e ORDER BY. No SQL Server 2005 e no SQL Server 2008, você obterá melhor desempenho para previsões associativas, se usar a função Predict (DMX) que suporta a especificação de um número de previsões a serem retornadas.
No entanto, há situações em que você pode ainda precisar usar TopCount. Por exemplo, DMX não oferece suporte ao qualificador TOP em uma instrução de subseleção. A função PredictHistogram (DMX) também não oferece suporte à adição de TOP.
Exemplos
Os exemplos a seguir são consultas de previsão no modelo de Associação que você compila usando o Tutorial de mineração de dados básico. As consultas retornam os mesmos resultados, mas o primeiro exemplo usa a função TopCount e o segundo usa a função Predict.
Para compreender como TopCount funciona, talvez seja ú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 Como criar uma consulta Singleton no Designer de Mineração de Dados. |
Resultados do exemplo:
Modelo |
$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 |
Conjunto de pára-lamas - Montanha |
1415 |
0.095100477 |
0.090718432 |
Cantil para Mountain Bike |
1367 |
0.091874454 |
0.087780332 |
Cantil de estrada |
1195 |
0.080314537 |
0.077173962 |
A função TopCount utiliza os resultados desta 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-se a função Predict e usando-se o argumento INCLUDE_STATISTICS.
O segundo argumento para a função TopCount é a coluna na tabela aninhada que você pode usar 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:
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… |
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 a função [TopCount] pela função [Predict] que aceita um número de previsões como um 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 Predict (DMX).
Consulte também