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

Los ejemplos de esta sección muestran cómo usar la sintaxis para ayudarle a empezar.

Una columna

En el ejemplo siguiente se usa la tabla de datos, shapes, para devolver una lista de formas en 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 usa la función make_list y la cláusula by para crear dos listas de objetos agrupados por si tienen un número par o impar de lados.

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. Devuelve una columna con una tabla booleana isEvenSideCount que indica si el recuento lateral es par o impar y una columna mylist que contiene listas de bolsas empaquetadas en cada categoría.

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}]