Partager via


make_bag_if() (fonction d’agrégation)

Crée un dynamic conteneur de propriétés JSON (dictionnaire) de valeurs expr dans les enregistrements pour lesquels le trueprédicat est évalué .

Les valeurs Null sont ignorées et ne sont pas prises en compte dans le calcul.

Remarque

Cette fonction est utilisée conjointement avec l’opérateur de synthèse.

Syntaxe

make_bag_if(prédicat expr, [, maxSize])

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
expr dynamic ✔️ Expression utilisée pour le calcul d’agrégation.
prédicat bool ✔️ Prédicat qui prend truela valeur , afin que expr soit ajouté au résultat.
maxSize int Limite du nombre maximal d’éléments retournés. La valeur par défaut et maximale est 1048576.

Retours

Retourne un dynamic conteneur de propriétés JSON (dictionnaire) de valeurs expr dans les enregistrements pour lesquels le prédicat est trueévalué à . Les valeurs non-dictionnaire sont ignorées. Si une clé apparaît dans plusieurs lignes, une valeur arbitraire, hors des valeurs possibles de cette clé, est sélectionnée.

Remarque

Cette fonction sans prédicat est similaire à make_bag.

Exemple

L’exemple suivant montre un conteneur de propriétés JSON packé.

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)

Sortie

dict
{ « prop01 » : « val_a », « prop03 » : « val_c » }

Utilisez le plug-in bag_unpack() pour transformer les clés de conteneur dans la sortie make_bag_if() en colonnes.

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)

Sortie

prop01 prop03
val_a val_c