make_bag_if() (Aggregationsfunktion)

Erstellt einen dynamic JSON-Eigenschaftenbehälter (Wörterbuch) mit Expr-Werten in Datensätzen, für die das Prädikat in trueausgewertet wird.

NULL-Werte werden ignoriert und nicht in die Berechnung einbezogen.

Hinweis

Diese Funktion wird in Verbindung mit dem Zusammenfassungsoperator verwendet.

Syntax

make_bag_if(Expr,Prädikat [,maxSize])

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
expr dynamic ✔️ Der Ausdruck, der für die Aggregationsberechnung verwendet wird.
predicate bool ✔️ Das Prädikat, das mit trueausgewertet wird, damit expr dem Ergebnis hinzugefügt wird.
Maxsize int Das Limit für die maximale Anzahl zurückgegebener Elemente. Der Standardwert und der maximale Wert ist 1048576.

Gibt zurück

Gibt einen dynamic JSON-Eigenschaftenbehälter (Wörterbuch) von Expr-Werten in Datensätzen zurück, für die das Prädikat in trueausgewertet wird. Nicht-Wörterbuchwerte werden übersprungen. Wenn ein Schlüssel in mehr als einer Zeile angezeigt wird, wird ein beliebiger Wert aus den möglichen Werten für diesen Schlüssel ausgewählt.

Hinweis

Diese Funktion ohne das Prädikat ähnelt make_bag.

Beispiel

Das folgende Beispiel zeigt einen gepackten JSON-Eigenschaftenbehälter.

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)

Ausgabe

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

Verwenden Sie bag_unpack() -Plug-In, um die Taschenschlüssel in der ausgabe make_bag_if() in Spalten zu transformieren.

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)

Ausgabe

prop01 prop03
val_a val_c