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

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()

Syntax

make_list(expr [,maxSize])

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

Parámetros

Nombre Tipo Requerido 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 del summarize operador no está ordenada, el orden de los elementos de la matriz resultante no está definido. Si la entrada al summarize operador se ordena, 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","hexagon","heptagon","octagon","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","triángulo","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 operator es similar a make_list, salvo que también acepta un predicado.