Condividi tramite


make_list() (funzione di aggregazione)

Si applica a: ✅Microsoft Fabric

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

I valori Null vengono ignorati e non vengono inseriti 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 Digita Obbligatorio 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 di 128.

Valori restituiti

Restituisce una dynamic matrice di tutti i valori di expr nel gruppo. Se l'input dell'operatore summarize non è ordinato, l'ordine degli elementi nella matrice risultante non è definito. Se l'input dell'operatore summarize viene 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.

Esempi

Negli esempi di questa sezione viene illustrato come usare la sintassi per iniziare.

Una colonna

Nell'esempio seguente viene utilizzata la tabella dati, shapes, per restituire un elenco di forme in 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","esagono","heptagon","octagon","nonagon","decagon"]

Utilizzo della clausola 'by'

Nell'esempio seguente viene utilizzata la funzione make_list e la clausola by per creare due elenchi di oggetti raggruppati in base al fatto che abbiano un numero pari o dispari di lati.

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 ["square","rectangle","esagone","octagon","decagon"]

Compressione di un oggetto dinamico

Negli esempi seguenti viene illustrato come comprimere un oggetto dinamico in una colonna prima di crearne un elenco. Restituisce una colonna con una tabella booleana isEvenSideCount che indica se il conteggio laterale è pari o dispari e una colonna mylist che contiene elenchi di contenitori compressi int ogni categoria.

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":"esagono","sideCount":6},{"name":"octagon","sideCount":8},{"name":"decagon","sideCount":10}]