make_bag_if() (функция агрегирования)
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
dynamic
Создает контейнер свойств JSON (словарь) значений expr в записях, для которых вычисляется true
предикат.
Значения NULL игнорируются и не учитываются в вычислении.
Синтаксис
make_bag_if(
предикат expr,
[,
maxSize])
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
expr | dynamic |
✔️ | Выражение, используемое для вычисления агрегирования. |
predicate | bool |
✔️ | Предикат, который вычисляет true , чтобы экспр был добавлен в результат. |
maxSize | int |
Ограничение на максимальное количество возвращаемых элементов. Значение по умолчанию и максимальное значение — 1048576. |
Возвраты
dynamic
Возвращает контейнер свойств JSON (словарь) значений expr в записях, для которых вычисляется true
предикат. Значения, отличные от словаря, будут пропущены.
Если ключ отображается в нескольких строках, будет выбрано произвольное значение из возможных значений этого ключа.
Примечание.
Эта функция без предиката аналогична make_bag
.
Пример
В следующем примере показан упакованный контейнер свойств 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)
Выходные данные
dict |
---|
{ "prop01": "val_a", "prop03": "val_c" } |
Используйте подключаемый модуль bag_unpack() для преобразования ключей пакета в выходные данные make_bag_if() в столбцы.
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)
Выходные данные
prop01 | prop03 |
---|---|
val_a | val_c |