make_list() (função de agregação)

Cria uma dynamic matriz de todos os valores de expr no grupo.

Os valores nulos são ignorados e não têm em conta o cálculo.

Nota

Esta função é utilizada em conjunto com o operador de resumo.

Aliases preteridos: makelist()

Syntax

make_list(expr [,maxSize])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Necessário Descrição
expr dynamic ✔️ A expressão utilizada para o cálculo de agregação.
maxSize int O número máximo de elementos devolvidos. O valor predefinido e máximo é 1048576.

Nota

A versão preterida tem um limite de tamanho máximo predefinido de 128.

Devoluções

Devolve uma dynamic matriz de todos os valores de expr no grupo. Se a entrada do summarize operador não estiver ordenada, a ordem dos elementos na matriz resultante é indefinida. Se a entrada do summarize operador estiver ordenada, a ordem dos elementos na matriz resultante controla a entrada.

Dica

Utilize a array_sort_asc() função ou array_sort_desc() para criar uma lista ordenada por alguma chave.

Exemplos

Uma coluna

O exemplo seguinte faz uma lista de uma única coluna:

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)

Saída

mylist
["triângulo","quadrado","retângulo","pentágono","hexágono","heptagon","octágono","nonagon","decagon"]

Utilizar a cláusula "by"

O exemplo seguinte executa uma consulta com a by cláusula:

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

Saída

isEvenSideCount mylist
false ["triângulo","pentágono","heptagon","nonagon"]
true ["quadrado","retângulo","hexágono","octágono","decagon"]

Empacotar um objeto dinâmico

Os exemplos seguintes mostram como empacotar um objeto dinâmico numa coluna antes de o tornar numa lista.

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

Saída

isEvenSideCount mylist
false [{"name":"triangle","sideCount":3},{"name":"pentagon","sideCount":5},{"name":"heptagon","sideCount":7},{"name":"nonagon","sideCount":9}]
true [{"name":"square","sideCount":4},{"name":"retângulo","sideCount":4},{"name":"hexagon","sideCount":6},{"name":"octagon","sideCount":8},{"name":"decagon","sideCount":10}]

make_list_if o operador é semelhante a make_list, exceto que também aceita um predicado.