Partilhar via


Função TOPN (DAX)

Retorna as primeiras N linhas da tabela especificada.

Sintaxe

TOPN(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])

Parâmetros

  • n_value
    O número de linhas a ser retornado. Ele é qualquer expressão DAX que retorne um único valor escalar, onde a expressão será avaliada várias vezes (para cada linha/contexto).

    Consulte a seção de comentários para compreender quando o número de linhas retornado pode ser maior que n_value.

    Consulte a seção de comentários para compreender quando uma tabela vazia é retornada.

  • table
    Qualquer expressão DAX que retorna uma tabela de dados de onde as primeiras 'n' linhas são extraídas.

  • orderBy_expression
    (Opcional) Qualquer expressão DAX em que o valor do resultado é usado para classificar a tabela e avaliada para cada linha de table.

  • order
    (Opcional) Um valor que especifica como classificar valores orderBy_expression, em ordem crescente ou decrescente:

    value

    valor alternativo

    Descrição

    0 (zero)

    FALSE

    Classifica em ordem decrescente de valores de order_by.

    Este é o valor padrão quando o parâmetro order é omitido.

    1

    TRUE

    Classifica em ordem crescente de order_by.

Valor de retorno

Uma tabela com as primeiras N linhas de table ou uma tabela vazia se n_value for 0 (zero) ou menos. As linhas não são necessariamente classificadas em uma ordem específica.

Comentários

  • Se houver uma associação, em valores order_by, na linha N da tabela, todas as linhas associadas serão retornadas. Então, quando há associações na linha N, a função pode retornar mais de n linhas.

  • Se n_value for 0 (zero) ou menos, TOPN retornará uma tabela vazia.

  • TOPN não garante uma ordem de classificação para os resultados.

Exemplo

O exemplo a seguir cria uma medida com as vendas dos primeiros 10 produtos vendidos.

=SUMX(TOPN(10, SUMMARIZE(Product, [ProductKey], “TotalSales”, SUMX(RELATED(InternetSales_USD[SalesAmount_USD]), InternetSales_USD[SalesAmount_USD]) + SUMX(RELATED(ResellerSales_USD[SalesAmount_USD]), ResellerSales_USD[SalesAmount_USD]))