(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como obter o Top N em KQL: operador top passo a passo

João Barros 05 de July de 2026 4 min de leitura

O operador top em KQL é a forma mais rápida de responder a perguntas de ranking como "quais os 5 produtos com maior receita?" ou "quais os 10 eventos mais recentes?". Neste guia vais aprender, passo a passo, a obter o Top N em KQL com o operador top, desde o exemplo mais simples até ordenar dados já agregados.

Pré-requisitos

  • Acesso a um ambiente KQL: um cluster do Azure Data Explorer, um Eventhouse no Microsoft Fabric (Real-Time Analytics) ou o ambiente de demonstração gratuito.
  • Uma tabela para consultar. Neste exemplo usamos uma tabela Vendas com as colunas Data, Produto, Categoria, Receita e Unidades.
  • Saber escrever e executar uma consulta KQL — lembra-te de que o símbolo | liga cada passo do pipeline.

Passo 1: Perceber a sintaxe do operador top

O operador top faz duas coisas ao mesmo tempo: ordena os dados e devolve apenas as primeiras linhas. A sintaxe é direta:

NomeDaTabela
| top N by Expressao [asc | desc]

O N é o número de linhas que queres (por exemplo, 5). A seguir a by indicas a coluna ou expressão que serve de critério de ordenação. Usa desc para ir do maior para o menor (o caso mais comum) e asc para o contrário. Se não indicares a direção, o KQL ordena de forma descendente por omissão.

Passo 2: Obter o Top 5 por uma coluna

Comecemos pela pergunta mais direta: quais são as 5 vendas com maior receita? Escreve:

Vendas
| top 5 by Receita desc

O resultado são exatamente 5 linhas, ordenadas da receita mais alta para a mais baixa. Repara como o top substitui a combinação de ordenar e limitar: numa só linha tens o mesmo que farias com sort by Receita desc seguido de take 5, mas de forma mais legível e eficiente.

E se houver empates? Se vários registos tiverem a mesma Receita, o top pode escolher qualquer um deles para as últimas posições. Quando precisas de um critério de desempate previsível por mais do que uma coluna, usa antes sort com várias chaves seguido de take:

Vendas
| sort by Receita desc, Data desc
| take 5

Passo 3: Filtrar antes e escolher as colunas

Raramente queres o Top N sobre a tabela inteira. O normal é filtrar primeiro com where e mostrar apenas as colunas úteis com project. Por exemplo, o Top 3 de vendas da categoria "Software" a partir de 2026:

Vendas
| where Categoria == "Software"
| where Data >= datetime(2026-01-01)
| top 3 by Receita desc
| project Data, Produto, Receita

A ordem importa: primeiro reduzimos as linhas com where, depois aplicamos o top e só no fim escolhemos as colunas com project. Assim o motor trabalha sobre menos dados e a consulta fica mais rápida.

Passo 4: Top N depois de agregar dados

Muitas vezes a pergunta do negócio não é sobre linhas individuais, mas sobre totais: "quais os 5 produtos que mais faturaram?". Para isso, primeiro somamos a receita por produto com summarize e só depois aplicamos o top:

Vendas
| summarize ReceitaTotal = sum(Receita) by Produto
| top 5 by ReceitaTotal desc

O summarize cria uma linha por produto com a soma da receita; o top fica com os 5 maiores. Este padrão — agregar e depois ordenar — resolve a maioria dos rankings que vais precisar de construir.

Dica: se precisares do Top N dentro de cada grupo (por exemplo, os 3 produtos mais vendidos de cada categoria), existe o operador top-nested, feito precisamente para esse caso.

Verificar o resultado

Para confirmar que a consulta está correta, verifica três coisas. Primeiro, o número de linhas devolvidas deve ser igual ao N que pediste (ou menos, se a tabela tiver menos linhas). Segundo, olha para a coluna de ordenação: com desc, os valores devem descer de linha para linha. Terceiro, para validar o Passo 4, troca o top por count e confirma que existem mais produtos do que os 5 mostrados — prova de que o ranking está mesmo a filtrar:

Vendas
| summarize ReceitaTotal = sum(Receita) by Produto
| count

Conclusão

Com o operador top já consegues responder a perguntas de ranking em KQL de forma limpa: escolher o Top N por uma coluna, filtrar antes com where e ordenar totais depois de summarize. O passo seguinte natural é explorar o top-nested para rankings dentro de cada grupo e o operador render para transformar estes resultados num gráfico de barras. Qual vai ser o primeiro ranking que precisas de construir com os teus dados?