make_list() (агрегатная функция)
Создает dynamic
массив всех значений expr в группе.
Значения NULL игнорируются и не учитываются при вычислении.
Примечание
Эта функция используется в сочетании с оператором summarize.
Устаревшие псевдонимы: makelist()
Синтаксис
make_list(
expr [,
maxSize])
Дополнительные сведения о соглашениях о синтаксисе.
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
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 |
---|
["triangle","square","rectangle","пентагон","hexagon","heptagon","octagon","nonagon","decagon"] |
Использование предложения 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"] |
Да | ["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}] |
Да | [{"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
, за исключением того, что он также принимает предикат.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе:Отправить и просмотреть отзыв по