Partilhar via


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

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Cria um dynamic conjunto de propriedades JSON (dicionário) de valores de expr em registros para os quais predicado avalia para true.

Os valores nulos são ignorados e não entram no cálculo.

Observação

Esta função é usada em conjunto com o operador resumo.

Sintaxe

make_bag_if( expr,predicado [,maxSize])

Saiba mais sobre convenções de sintaxe.

Parâmetros

Designação Tipo Necessário Descrição
expr dynamic ✔️ A expressão usada para o cálculo de agregação.
predicado bool ✔️ O predicado que avalia true, para que expr seja adicionado ao resultado.
maxSize int O limite do número máximo de elementos retornados. O valor padrão e máximo é 1048576.

Devoluções

Retorna um dynamic conjunto de propriedades JSON (dicionário) de valores de expr em registros para os quais predicado avalia para true. Os valores não dicionários sã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

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

Exemplo

O exemplo a seguir mostra um pacote de propriedades JSON compactado.

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

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

Use bag_unpack() plugin para transformar as chaves de saco 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)

Output

prop01 prop03
val_a val_c