make_list() (agregační funkce)

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

Hodnoty Null se ignorují a nezapočítávají se do výpočtu.

Poznámka

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

Zastaralé aliasy: makelist()

Syntax

make_list(výraz [,maxSize])

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

Parametry

Název Typ Vyž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 jsou 1048576.

Poznámka

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

Návraty

Vrátí matici dynamic všech hodnot výrazu ve skupině. Pokud vstup operátoru summarize není 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 nebo array_sort_desc() vytvořte 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

seznam mylist
["trojúhelník","čtverec","obdélník","pětiúhelník","šestiúhelník","heptagon","osmiúhelník","nonagon","decagon"]

Použití klauzule "by"

Následující příklad spustí dotaz pomocí klauzule by :

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 seznam mylist
false (nepravda) ["trojúhelník","pětiúhelník","heptagon","nonagon"]
true ["čtverec","obdélník","šestiúhelník","osmiúhelník","decagon"]

Zabalení dynamického objektu

Následující příklady ukazují, jak zabalit dynamický objekt do sloupce před vytvořením seznamu.

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 seznam mylist
false (nepravda) [{"name":"triangle","sideCount":3},{"name":"pětiúhelník","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ý operátoru make_lists tím rozdílem, že přijímá také predikát.