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

Jeden sloupec

Následující příklad vytvoří seznam z jednoho sloupce:

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 spustí dotaz pomocí by klauzule:

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.

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

make_list_if operátor je podobný make_listoperátoru , s výjimkou toho, že přijímá také predikát.