Condividi tramite


make_bag_if() (funzione di aggregazione)

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.
predicato 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 del dizionario verranno ignorati. Se una chiave viene visualizzata in più righe, verrà selezionato un valore arbitrario, rispetto ai 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