共用方式為


make_bag_if() (彙總函式)

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

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

注意

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

Syntax

make_bag_if(expr,述詞 [,maxSize])

深入瞭解 語法慣例

參數

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

傳回

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

注意

沒有述詞的函式類似於 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