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 levam em conta o cálculo.

Observação

Essa função é usada em conjunto com o operador summarize.

Aliases preteridos: makelist()

Syntax

make_list(expr [,maxSize])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
expr dynamic ✔️ A expressão usada para o cálculo de agregação.
Maxsize int O número máximo de elementos retornados. O valor padrão e máximo é 1048576.

Observação

A versão preterida tem um limite de maxSize padrão de 128.

Retornos

Retorna uma dynamic matriz de todos os valores de expr no grupo. Se a entrada para o summarize operador não for classificada, a ordem dos elementos na matriz resultante será indefinida. Se a entrada para o summarize operador for classificada, a ordem dos elementos na matriz resultante acompanhará a da entrada.

Dica

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

Exemplos

Uma coluna

O exemplo a seguir 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", "heptagono", "octógono","nonagon","decagon"]

Usando a cláusula 'by'

O exemplo a seguir executa uma consulta usando 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","decágono"]

Empacotando um objeto dinâmico

Os exemplos a seguir mostram como empacotar um objeto dinâmico em uma coluna antes de torná-lo uma 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":"pentágono","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 o operador é semelhante a make_list, exceto que ele também aceita um predicado.