Dela via


make_bag_if() (sammansättningsfunktion)

Gäller för: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Skapar en dynamic JSON-egenskapspåse (ordlista) med uttr värden i poster som predikatet utvärderas till true.

Null-värden ignoreras och tar inte hänsyn till beräkningen.

Not

Den här funktionen används tillsammans med operatorn summarize.

Syntax

make_bag_if( , predikat [,maxSize])

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Krävs Beskrivning
uttr dynamic ✔️ Uttrycket som används för aggregeringsberäkningen.
predikat bool ✔️ Predikatet som utvärderas till true, för att uttr läggas till i resultatet.
maxSize int Gränsen för det maximala antalet element som returneras. Standardvärdet och maxvärdet är 1048576.

Returnerar

Returnerar en dynamic JSON-egenskapspåse (ordlista) med uttr värden i poster för vilka predikat utvärderas till true. Nondictionary-värden hoppas över. Om en nyckel visas på mer än en rad väljs ett godtyckligt värde, av de möjliga värdena för den här nyckeln.

Not

Den här funktionen utan predikatet liknar make_bag.

Exempel

I följande exempel visas en packad JSON-egenskapsväska.

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)

utdata

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

Använd bag_unpack() plugin-program för att omvandla påsnycklarna i utdata från make_bag_if() till kolumner.

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)

utdata

prop01 prop03
val_a val_c