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 |