make_bag_if() (funkcja agregacji)
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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 true wartość , 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 |