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

Cómo obtener el Top N en KQL con el operador top

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

El operador top en KQL es la forma más rápida de responder a preguntas de ranking como "¿qué 5 productos tienen mayor ingreso?" o "¿cuáles son los 10 eventos más recientes?". En esta guía aprenderás, paso a paso, a obtener el Top N en KQL con el operador top, desde el ejemplo más simple hasta ordenar datos ya agregados.

Requisitos previos

  • Acceso a un entorno KQL: un clúster de Azure Data Explorer, un Eventhouse en Microsoft Fabric (Real-Time Analytics) o el entorno de demostración gratuito.
  • Una tabla para consultar. En este ejemplo usamos una tabla Vendas con las columnas Data, Produto, Categoria, Receita y Unidades.
  • Saber escribir y ejecutar una consulta KQL — recuerda que el símbolo | conecta cada paso del pipeline.

Paso 1: Entender la sintaxis del operador top

El operador top hace dos cosas a la vez: ordena los datos y devuelve solo las primeras filas. La sintaxis es directa:

NomeDaTabela
| top N by Expressao [asc | desc]

N es el número de filas que quieres (por ejemplo, 5). Después de by indicas la columna o expresión que sirve de criterio de ordenación. Usa desc para ir de mayor a menor (el caso más común) y asc para lo contrario. Si no indicas la dirección, KQL ordena de forma descendente por defecto.

Paso 2: Obtener el Top 5 por una columna

Empecemos por la pregunta más directa: ¿cuáles son las 5 ventas con mayor ingreso? Escribe:

Vendas
| top 5 by Receita desc

El resultado son exactamente 5 filas, ordenadas del ingreso más alto al más bajo. Fíjate en cómo top sustituye la combinación de ordenar y limitar: en una sola línea obtienes lo mismo que harías con sort by Receita desc seguido de take 5, pero de forma más legible y eficiente.

¿Y si hay empates? Si varios registros comparten el mismo Receita, top puede elegir cualquiera de ellos para las últimas posiciones. Cuando necesitas un criterio de desempate previsible por más de una columna, usa mejor sort con varias claves seguido de take:

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

Paso 3: Filtrar primero y elegir las columnas

Rara vez quieres el Top N sobre la tabla entera. Lo normal es filtrar primero con where y mostrar solo las columnas útiles con project. Por ejemplo, el Top 3 de ventas de la categoría "Software" a partir de 2026:

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

El orden importa: primero reducimos las filas con where, después aplicamos top y solo al final elegimos las columnas con project. Así el motor trabaja sobre menos datos y la consulta es más rápida.

Paso 4: Top N después de agregar datos

Muchas veces la pregunta del negocio no es sobre filas individuales, sino sobre totales: "¿qué 5 productos facturaron más?". Para eso, primero sumamos el ingreso por producto con summarize y solo después aplicamos top:

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

El summarize crea una fila por producto con la suma del ingreso; top se queda con los 5 mayores. Este patrón — agregar y después ordenar — resuelve la mayoría de los rankings que necesitarás construir.

Consejo: si necesitas el Top N dentro de cada grupo (por ejemplo, los 3 productos más vendidos de cada categoría), existe el operador top-nested, hecho precisamente para ese caso.

Verificar el resultado

Para confirmar que la consulta es correcta, verifica tres cosas. Primero, el número de filas devueltas debe ser igual al N que pediste (o menos, si la tabla tiene menos filas). Segundo, mira la columna de ordenación: con desc, los valores deben bajar de fila en fila. Tercero, para validar el Paso 4, cambia top por count y confirma que hay más productos que los 5 mostrados — prueba de que el ranking está realmente filtrando:

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

Conclusión

Con el operador top ya puedes responder a preguntas de ranking en KQL de forma limpia: elegir el Top N por una columna, filtrar primero con where y ordenar totales después de summarize. El siguiente paso natural es explorar top-nested para rankings dentro de cada grupo y el operador render para convertir estos resultados en un gráfico de barras. ¿Cuál será el primer ranking que necesitas construir con tus datos?