make_bag_if() (função de agregação)

Cria um dynamic recipiente de propriedades JSON (dicionário) de valores expr em registros para os quais o predicado é trueavaliado como .

Os valores nulos são ignorados e não são levados em conta no cálculo.

Observação

Essa função é usada em conjunto com o operador summarize.

Syntax

make_bag_if(Expr,predicado [,maxSize])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
expr dynamic ✔️ A expressão usada para o cálculo de agregação.
predicate bool ✔️ O predicado que é trueavaliado como , para que expr seja adicionado ao resultado.
Maxsize int O limite no número máximo de elementos retornados. O valor padrão e max é 1048576.

Retornos

Retorna um dynamic recipiente de propriedades JSON (dicionário) de valores expr em registros para os quais o predicado é trueavaliado como . Valores que não são de dicionário serão ignorados. Se uma chave aparecer em mais de uma linha, um valor arbitrário, fora dos valores possíveis para essa chave, será selecionado.

Observação

Essa função sem o predicado é semelhante a make_bag.

Exemplo

O exemplo a seguir mostra um recipiente de propriedades JSON empacotado.

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)

Saída

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

Use bag_unpack() plug-in para transformar as teclas bag na saída make_bag_if() em colunas.

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)

Saída

prop01 prop03
val_a val_c