Udostępnij za pośrednictwem


make_bag_if() (funkcja agregacji)

Tworzy torbę dynamic właściwości JSON (słownik) wartości wyrażenia w rekordach, dla których predykat oblicza wartość true.

Wartości null są ignorowane i nie są uwzględniane w obliczeniach.

Uwaga

Ta funkcja jest używana w połączeniu z operatorem podsumowania.

Składnia

make_bag_if(predykat expr, [, maxSize])

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
wyrażenie dynamic ✔️ Wyrażenie używane do obliczania agregacji.
predykat bool ✔️ Predykat, który oblicza truewartość , w celu dodania wyrażenia do wyniku.
maxSize int Limit maksymalnej liczby zwracanych elementów. Wartość domyślna i maksymalna to 1048576.

Zwraca

dynamic Zwraca worek właściwości JSON (słownik) wartości wyrażenia w rekordach, dla których predykat oblicza wartość .true Wartości inne niż słownik zostaną pominięte. Jeśli klucz pojawi się w więcej niż jednym wierszu, zostanie wybrana dowolna wartość z możliwych wartości dla tego klucza.

Uwaga

Ta funkcja bez predykatu jest podobna do make_bag.

Przykład

W poniższym przykładzie przedstawiono pakowaną torbę właściwości JSON.

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)

Wyjście

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

Użyj wtyczki bag_unpack() do przekształcania kluczy torby w danych wyjściowych make_bag_if() na kolumny.

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)

Wyjście

prop01 prop03
val_a val_c