make_bag_if() (агрегатная функция)
dynamic
Создает контейнер свойств JSON (словарь) значений expr в записях, для которых предикат имеет значение true
.
Значения NULL игнорируются и не учитываются при вычислении.
Примечание
Эта функция используется в сочетании с оператором summarize.
Синтаксис
make_bag_if(
Expr,
предикат [,
maxSize])
Дополнительные сведения о соглашениях о синтаксисе.
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
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 |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по