make_bag_if() (agregační funkce)

Vytvoří kontejner dynamic vlastností JSON (slovník) hodnot výrazu v záznamech, pro které se predikát vyhodnotí jako true.

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.

Syntax

make_bag_if(Výraz,predikát [,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.
Predikátu bool ✔️ Predikát, který se vyhodnotí jako true, aby se výraz přidal do výsledku.
maxSize int Limit maximálního počtu vrácených prvků. Výchozí a maximální hodnota jsou 1048576.

Návraty

Vrátí pytel dynamic vlastností JSON (slovník) expr hodnot v záznamech, pro které se predikát vyhodnotí jako true. Hodnoty, které nejsou slovníkem, budou vynechány. Pokud se klíč zobrazí ve více než jednom řádku, bude vybrána libovolná hodnota z možných hodnot tohoto klíče.

Poznámka

Tato funkce bez predikátu je podobná make_bagfunkci .

Příklad

Následující příklad ukazuje zabalenou sadu vlastností JSON.

let T = datatable(prop:string, value:string, predicate:bool)
[
    "prop01", "val_a", true,
    "prop02", "val_b", false,
    "prop03", "val_c", true
];
T
| extend p = bag_pack(prop, value)
| summarize dict=make_bag_if(p, predicate)

Výstup

dict
{ "prop01": "val_a", "prop03": "val_c" }

Pomocí modulu plug-in bag_unpack() transformujte klíče bag ve výstupu make_bag_if() do sloupců.

let T = datatable(prop:string, value:string, predicate:bool)
[
    "prop01", "val_a", true,
    "prop02", "val_b", false,
    "prop03", "val_c", true
];
T
| extend p = bag_pack(prop, value)
| summarize bag=make_bag_if(p, predicate)
| evaluate bag_unpack(bag)

Výstup

prop01 prop03
val_a val_c