make_list()(聚合函数)

创建组中 expr 所有值的 dynamic 数组。

注意

此函数与 summarize 运算符结合使用。

弃用的别名:makelist()

语法

make_list(expr [,maxSize])

详细了解语法约定

参数

名称 Type 需要 说明
expr 动态 用于聚合计算的表达式。
maxSize int 返回的最大元素数目。 默认值和最大值为 1048576。

注意

已弃用版本的默认 maxSize 限制为 128。

返回

返回组中 expr 所有值的 dynamic 数组。 如果未对 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","pentagon","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 ["triangle","pentagon","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":"pentagon","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 相似,只是它也接受谓词。