Compartir a través de


make_bag_if() (función de agregación)

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Crea un dynamic contenedor de propiedades JSON (diccionario) de valores expr en registros para los que el predicado se evalúa como true.

Los valores NULL se omiten y no tienen en cuenta el cálculo.

Nota:

Esta función se usa junto con el operador summarize.

Sintaxis

make_bag_if(predicado expr, [, maxSize])

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Type Obligatorio Descripción
expr dynamic ✔️ Expresión usada para el cálculo de agregación.
predicado bool ✔️ Predicado que se evalúa truecomo , para que expr se agregue al resultado.
maxSize int Límite en el número máximo de elementos devueltos. El valor predeterminado y máximo es 1048576.

Devoluciones

Devuelve un dynamic contenedor de propiedades JSON (diccionario) de valores expr en registros para los que el predicado se evalúa como true. Se omitirán los valores no diccionarios. Si una clave aparece en más de una fila, se seleccionará un valor arbitrario, fuera de los valores posibles para esta clave.

Nota:

Esta función sin el predicado es similar a make_bag.

Ejemplo

En el ejemplo siguiente se muestra un contenedor de propiedades JSON empaquetado.

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)

Salida

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

Use bag_unpack() complemento para transformar las claves de contenedor en la salida make_bag_if() en columnas.

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)

Salida

prop01 prop03
val_a val_c