Partilhar via


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

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

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

Os valores nulos são ignorados e não entram no cálculo.

Observação

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

Aliases preteridos: makelist()

Sintaxe

make_list( expr [,maxSize])

Saiba mais sobre convenções de sintaxe.

Parâmetros

Designação Tipo Necessá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 padrão de maxSize de 128.

Devoluções

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

Dica

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

Exemplos

Os exemplos nesta seção mostram como usar a sintaxe para ajudá-lo a começar.

Uma coluna

O exemplo a seguir usa a tabela de dados, shapes, para retornar uma lista de formas em 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)

Output

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

Utilização da cláusula «por»

O exemplo a seguir usa a função make_list e a cláusula by para criar duas listas de objetos agrupados por terem um número par ou ímpar de lados.

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

Output

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

Empacotando um objeto dinâmico

Os exemplos a seguir mostram como pacote um objeto dinâmico em uma coluna antes de torná-lo uma lista. Ele retorna uma coluna com uma tabela booleana isEvenSideCount indicando se a contagem lateral é par ou ímpar e uma coluna mylist que contém listas de sacos embalados em cada categoria.

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

Output

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