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)