共用方式為


make_bag_if() (聚合函數)

適用於:✅Microsoft網狀架構Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel

在述詞評估為 true記錄中,建立 dynamic EXPR值的JSON屬性包(字典)。

Null 值會被忽略,且不會納入計算。

注意

此函式會與 summarize 運算子搭配使用。

語法

make_bag_if(expr, 述詞 [, maxSize])

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
expr dynamic ✔️ 用於匯總計算的表達式。
predicate bool ✔️ 評估為 true的述詞,以便 將expr 新增至結果。
maxSize int 傳回之項目數目上限的限制。 預設值和最大值為 1048576。

傳回

dynamic回述詞評估為 true的記錄中 expr 值的 JSON 屬性包(字典)。 將會略過非字典值。 如果索引鍵出現在多個數據列中,將會選取任意值,超出此索引鍵的可能值。

注意

沒有述詞的函式類似於 make_bag

範例

下列範例顯示已封裝的 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)

輸出

dict
{ “prop01”: “val_a”, “prop03”: “val_c” }

使用 bag_unpack() 外掛程式,將make_bag_if() 輸出中的包鍵轉換成數據行。

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)

輸出

prop01 prop03
val_a val_c