Condividi tramite


make_bag_if() (funzione di aggregazione)

Si applica a: ✅Microsoft Fabric

Crea un dynamic contenitore di proprietà JSON (dizionario) di valori espr nei record per cui il predicato restituisce true.

I valori Null vengono ignorati e non vengono inseriti nel calcolo.

Nota

Questa funzione viene usata insieme all'operatore summarize.

Sintassi

make_bag_if( expr,predicate [,maxSize])

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
expr dynamic ✔️ Espressione utilizzata per il calcolo dell'aggregazione.
predicate bool ✔️ Predicato che restituisce true, affinché expr venga aggiunto al risultato.
maxSize int Limite per il numero massimo di elementi restituiti. Il valore predefinito e massimo è 1048576.

Valori restituiti

Restituisce un dynamic contenitore di proprietà JSON (dizionario) di valori espr nei record per cui il predicato restituisce true. I valori non dizionari vengono ignorati. Se una chiave viene visualizzata in più righe, viene selezionato un valore arbitrario, ovvero i valori possibili per questa chiave.

Nota

Questa funzione senza il predicato è simile a make_bag.

Esempio

L'esempio seguente mostra un contenitore di proprietà JSON compresso.

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)

Output

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

Usare bag_unpack() plug-in per trasformare i tasti contenitore nell'output make_bag_if() in colonne.

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)

Output

prop01 prop03
val_a val_c