Share via


make_bag_if() (集計関数)

述語が dynamic に評価されるレコードに expr 値の JSON プロパティ バッグ (ディクショナリ) true作成します。

Null 値は無視され、計算に考慮されません。

Note

この関数は、summarize 演算子と組み合わせて使用します。

構文

make_bag_if(Expr,predicate [,maxSize])

構文規則について詳しく知る。

パラメーター

名前 必須 説明
expr dynamic ✔️ 集計計算に使用される式。
predicate bool ✔️ expr を結果にtrue追加するために に評価される述語。
Maxsize int 返される要素の最大数の制限。 既定値と最大値は1048576です。

戻り値

述語が dynamic に評価されるレコード内の expr 値の JSON プロパティ バッグ (ディクショナリ) true返します。 辞書以外の値はスキップされます。 キーが複数の行に存在する場合は、そのキーに使用できる値の中の任意の値が選択されます。

Note

述語のないこの関数は、 と 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" }

make_bag_if() の出力のバッグのキーを列に変換するには、bag_unpack() プラグインを使用します。

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