Sdílet prostřednictvím


make_list() (agregační funkce)

Platí pro: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

dynamic Vytvoří pole všech hodnot výrazu ve skupině.

Hodnoty Null se ignorují a nefaktorují do výpočtu.

Poznámka:

Tato funkce se používá ve spojení s operátorem sumarizace.

Zastaralé aliasy: makelist()

Syntaxe

make_list( výraz [,maxSize])

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
výraz dynamic ✔️ Výraz použitý pro výpočet agregace.
maxSize int Maximální počet vrácených prvků. Výchozí a maximální hodnota je 1048576.

Poznámka:

Zastaralá verze má výchozí limit maxSize 128.

Návraty

dynamic Vrátí matici všech hodnot výrazu ve skupině. Pokud není vstup operátoru summarize seřazený, pořadí prvků ve výsledném poli není definováno. Pokud je vstup operátoru summarize seřazený, pořadí prvků ve výsledném poli sleduje pořadí vstupu.

Tip

array_sort_asc() Pomocí funkce můžete array_sort_desc() vytvořit seřazený seznam podle nějakého klíče.

Příklady

Příklady v této části ukazují, jak používat syntaxi, která vám pomůže začít.

Jeden sloupec

Následující příklad používá datatable, shapes, k vrácení seznamu obrazců v jednom sloupci.

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)

Výstup

mylist
["trojúhelník","čtverec","obdélník","pětiúhelník","hexagon","heptagon","octagon","nonagon","decagon"]

Použití klauzule 'by'

Následující příklad používá funkci make_list a klauzuli by k vytvoření dvou seznamů objektů seskupených podle toho, zda mají sudý nebo lichý počet stran.

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

Výstup

isEvenSideCount mylist
false (nepravda) ["trojúhelník","pětiúhelník","heptagon","nonagon"]
true ["square","rectangle","hexagon","octagon","decagon"]

Balení dynamického objektu

Následující příklady ukazují, jak před vytvořením seznamu zabalit dynamický objekt do sloupce. Vrátí sloupec s logickou tabulkou isEvenSideCount označující, jestli je počet stran sudý nebo lichý, a sloupec mylist, který obsahuje seznamy zabalených sáčků v každé kategorii.

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

Výstup

isEvenSideCount mylist
false (nepravda) [{"name":"triangle","sideCount":3},{"name":"rogoznic","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}]