make_list() (функция агрегирования)
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
dynamic
Создает массив всех значений expr в группе.
Значения NULL игнорируются и не учитываются в вычислении.
Устаревшие псевдонимы: makelist()
Синтаксис
make_list(
expr [,
maxSize])
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
expr | dynamic |
✔️ | Выражение, используемое для вычисления агрегирования. |
maxSize | int |
Максимальное количество возвращаемых элементов. Значение по умолчанию и максимальное значение — 1048576. |
Примечание.
Устаревшая версия имеет ограничение maxSize по умолчанию 128.
Возвраты
dynamic
Возвращает массив всех значений expr в группе.
Если входные данные оператора summarize
не отсортированы, порядок элементов в результирующем массиве не определен.
Если входные данные оператора summarize
отсортированы, порядок элементов в результирующем массиве отслеживает входные данные.
Совет
array_sort_asc()
array_sort_desc()
Используйте функцию для создания упорядоченного списка по определенному ключу.
Примеры
Один столбец
В следующем примере создается список из одного столбца:
let shapes = datatable (name: string, sideCount: int)
[
"triangle", 3,
"square", 4,
"rectangle", 4,
"pentagon", 5,
"hexagon", 6,
"heptagon", 7,
"octagon", 8,
"nonagon", 9,
"decagon", 10
];
shapes
| summarize mylist = make_list(name)
Выходные данные
mylist |
---|
["треугольник","квадрат","прямоугольник","пентагон","шестнадцатеугольник","heptagon","octagon", "nonagon", "декагон"] |
Использование предложения "by"
В следующем примере выполняется запрос с помощью by
предложения:
let shapes = datatable (name: string, sideCount: int)
[
"triangle", 3,
"square", 4,
"rectangle", 4,
"pentagon", 5,
"hexagon", 6,
"heptagon", 7,
"octagon", 8,
"nonagon", 9,
"decagon", 10
];
shapes
| summarize mylist = make_list(name) by isEvenSideCount = sideCount % 2 == 0
Выходные данные
isEvenSideCount | mylist |
---|---|
false | ["треугольник","пентагон","heptagon","nonagon"] |
true | ["square","rectangle","hexagon","octagon","decagon"] |
Упаковка динамического объекта
В следующих примерах показано, как упаковать динамический объект в столбец перед созданием списка.
let shapes = datatable (name: string, sideCount: int)
[
"triangle", 3,
"square", 4,
"rectangle", 4,
"pentagon", 5,
"hexagon", 6,
"heptagon", 7,
"octagon", 8,
"nonagon", 9,
"decagon", 10
];
shapes
| extend d = bag_pack("name", name, "sideCount", sideCount)
| summarize mylist = make_list(d) by isEvenSideCount = sideCount % 2 == 0
Выходные данные
isEvenSideCount | mylist |
---|---|
false | [{"name":"triangle","sideCount":3},{"name":"пентагон","sideCount":5},{"name":"heptagon","sideCount":7},{"name":"nonagon","sideCount":9}] |
true | [{"name":"square","sideCount":4},{"name":"rectangle","sideCount":4},{"name":"hexagon","sideCount":6},{"name":"octagon","sideCount":8},{"name":"decagon","sideCount":10}] |
Связанный контент
make_list_if
оператор аналогичен make_list
, кроме того, он принимает предикат.