make_list() (funzione di aggregazione)

Crea una dynamic matrice di tutti i valori di expr nel gruppo.

I valori Null vengono ignorati e non vengono fattorizzati nel calcolo.

Nota

Questa funzione viene usata insieme all'operatore summarize.

Alias deprecati: makelist()

Sintassi

make_list(expr [,maxSize])

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
Expr dynamic ✔️ Espressione utilizzata per il calcolo dell'aggregazione.
Maxsize int Numero massimo di elementi restituiti. Il valore predefinito e massimo è 1048576.

Nota

La versione deprecata ha un limite maxSize predefinito pari a 128.

Restituisce

Restituisce una dynamic matrice di tutti i valori di expr nel gruppo. Se l'input per l'operatore summarize non è ordinato, l'ordine degli elementi nella matrice risultante non è definito. Se l'input per l'operatore summarize è ordinato, l'ordine degli elementi nella matrice risultante tiene traccia di quello dell'input.

Suggerimento

Usare la array_sort_asc() funzione o array_sort_desc() per creare un elenco ordinato in base a una chiave.

Esempio

Una colonna

Nell'esempio seguente viene creato un elenco da una singola colonna:

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)

Output

mylist
["triangolo","quadrato","rettangolo","pentagono","esagone","heptagon","ottagon","nonagon","decagon"]

Utilizzo della clausola 'by'

Nell'esempio seguente viene eseguita una query usando la by clausola :

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

Output

isEvenSideCount mylist
false ["triangolo","pentagono","heptagon","nonagon"]
true ["quadrato","rettangolo","esagono","ottagone","decagone"]

Compressione di un oggetto dinamico

Negli esempi seguenti viene illustrato come comprimere un oggetto dinamico in una colonna prima di crearne un elenco.

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

Output

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

make_list_if l'operatore è simile a make_list, ad eccezione del fatto che accetta anche un predicato.