Compartir a través de


make_list() (función de agregación)

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Crea una dynamic matriz de todos los valores de expr en el grupo.

Los valores NULL se omiten y no tienen en cuenta el cálculo.

Nota:

Esta función se usa junto con el operador summarize.

Alias en desuso: makelist()

Sintaxis

make_list(expr [, maxSize])

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Type Obligatorio Descripción
expr dynamic ✔️ Expresión usada para el cálculo de agregación.
maxSize int Número máximo de elementos devueltos. El valor predeterminado y máximo es 1048576.

Nota:

La versión en desuso tiene un límite de maxSize predeterminado de 128.

Devoluciones

Devuelve una dynamic matriz de todos los valores de expr del grupo. Si la entrada al summarize operador no está ordenada, el orden de los elementos de la matriz resultante no está definido. Si se ordena la entrada al summarize operador, el orden de los elementos de la matriz resultante realiza un seguimiento de la entrada.

Sugerencia

Use la array_sort_asc() función o array_sort_desc() para crear una lista ordenada por alguna clave.

Ejemplos

Una columna

En el ejemplo siguiente se crea una lista de una sola columna:

let shapes = datatable (name: string, sideCount: int)
[
    "triangle", 3,
    "square", 4,
    "rectangle", 4,
    "pentagon", 5,
    "hexagon", 6,
    "heptagon", 7,
    "octagon", 8,
    "nonagon", 9,
    "decagon", 10
];
shapes
| summarize mylist = make_list(name)

Salida

mylist
["triángulo","cuadrado","rectángulo","pentágono","heptagon","octágon","nonagon","decagon"]

Uso de la cláusula 'by'

En el ejemplo siguiente se ejecuta una consulta mediante la by cláusula :

let shapes = datatable (name: string, sideCount: int)
[
    "triangle", 3,
    "square", 4,
    "rectangle", 4,
    "pentagon", 5,
    "hexagon", 6,
    "heptagon", 7,
    "octagon", 8,
    "nonagon", 9,
    "decagon", 10
];
shapes
| summarize mylist = make_list(name) by isEvenSideCount = sideCount % 2 == 0

Salida

isEvenSideCount mylist
false ["triángulo","pentágono","heptagon","nonagon"]
true ["square","rectangle","hexagon","octagon","decagon"]

Empaquetado de un objeto dinámico

En los ejemplos siguientes se muestra cómo empaquetar un objeto dinámico en una columna antes de convertirlo en una lista.

let shapes = datatable (name: string, sideCount: int)
[
    "triangle", 3,
    "square", 4,
    "rectangle", 4,
    "pentagon", 5,
    "hexagon", 6,
    "heptagon", 7,
    "octagon", 8,
    "nonagon", 9,
    "decagon", 10
];
shapes
| extend d = bag_pack("name", name, "sideCount", sideCount)
| summarize mylist = make_list(d) by isEvenSideCount = sideCount % 2 == 0

Salida

isEvenSideCount mylist
false [{"name":"triangle","sideCount":3},{"name":"penta","sideCount":5},{"name":"heptagon","sideCount":7},{"name":"nonagon","sideCount":9}]
true [{"name":"square","sideCount":4},{"name":"rectangle","sideCount":4},{"name":"hexagon","sideCount":6},{"name":"octagon","sideCount":8},{"name":"decagon","sideCount":10}]

make_list_if el operador es similar a make_list, excepto que también acepta un predicado.