make_bag() (агрегатная функция)

Создает dynamic контейнер свойств JSON (словарь) всех значений expr в группе.

Значения NULL игнорируются и не учитываются при вычислении.

Примечание

Эта функция используется в сочетании с оператором summarize.

Синтаксис

make_bag(expr [,maxSize])

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
expr dynamic ✔️ Выражение, используемое для вычисления агрегирования.
Maxsize int Ограничение на максимальное количество возвращаемых элементов. Значения по умолчанию и максимальное значение — 1048576.

Примечание

make_dictionary() является нерекомендуемой в пользу make_bag(). Устаревшая версия имеет ограничение maxSize по умолчанию 128.

Возвращаемое значение

dynamic Возвращает контейнер свойств JSON (словарь) всех значений Expr в группе, которые являются контейнерами свойств. Значения, не относящиеся к словарю, будут пропущены. Если ключ отображается в нескольких строках, будет выбрано произвольное значение из возможных значений этого ключа.

Пример

В следующем примере показан упакованный контейнер свойств JSON.

let T = datatable(prop:string, value:string)
[
    "prop01", "val_a",
    "prop02", "val_b",
    "prop03", "val_c",
];
T
| extend p = bag_pack(prop, value)
| summarize dict=make_bag(p)

Выходные данные

dict
{ "prop01": "val_a", "prop02": "val_b", "prop03": "val_c" }

Используйте подключаемый модуль bag_unpack() для преобразования ключей контейнера в выходных данных make_bag() в столбцы.

let T = datatable(prop:string, value:string)
[
    "prop01", "val_a",
    "prop02", "val_b",
    "prop03", "val_c",
];
T
| extend p = bag_pack(prop, value)
| summarize bag=make_bag(p)
| evaluate bag_unpack(bag)

Выходные данные

prop01 prop02 prop03
val_a val_b val_c

bag_unpack().