make_bag_if() (función de agregación)
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 true como , 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 |