Udostępnij za pośrednictwem


make_list() (funkcja agregacji)

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Tworzy tablicę dynamic wszystkich wartości expr w grupie.

Wartości null są ignorowane i nie są uwzględniane w obliczeniach.

Uwaga

Ta funkcja jest używana w połączeniu z operatorem podsumowania.

Przestarzałe aliasy: makelist()

Składnia

make_list(expr [, maxSize])

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
wyrażenie dynamic ✔️ Wyrażenie używane do obliczania agregacji.
maxSize int Maksymalna liczba zwracanych elementów. Wartość domyślna i maksymalna to 1048576.

Uwaga

Przestarzała wersja ma domyślny limit maxSize 128.

Zwraca

Zwraca tablicę dynamic wszystkich wartości expr w grupie. Jeśli dane wejściowe operatora summarize nie są sortowane, kolejność elementów w wynikowej tablicy jest niezdefiniowana. Jeśli dane wejściowe operatora summarize są sortowane, kolejność elementów w wynikowej tablicy śledzi dane wejściowe.

Napiwek

array_sort_asc() Użyj funkcji orarray_sort_desc(), aby utworzyć uporządkowaną listę według klucza.

Przykłady

Jedna kolumna

Poniższy przykład tworzy listę z jednej kolumny:

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)

Wyjście

moja lista
["trójkąt","kwadrat","prostokąt","pentagon","sześciokąt","heptagon","oktagon","nonagon","decagon"]

Używanie klauzuli "by"

Poniższy przykład uruchamia zapytanie przy użyciu klauzuli 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

Wyjście

isEvenSideCount moja lista
fałsz ["trójkąt","pentagon","heptagon","nonagon"]
prawda ["kwadrat","prostokąt","sześciokąt","oktagon","decagon"]

Pakowanie obiektu dynamicznego

W poniższych przykładach pokazano, jak spakować obiekt dynamiczny w kolumnie przed utworzeniem listy.

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

Wyjście

isEvenSideCount moja lista
fałsz [{"name":"triangle","sideCount":3},{"name":"pentagon","sideCount":5},{"name":"heptagon","sideCount":7},{"name":"nonagon","sideCount":9}]
prawda [{"name":"square","sideCount":4},{"name":"rectangle","sideCount":4},{"name":"sześciokąt","sideCount":6},{"name":"octagon","sideCount":8},{"name":"decagon","sideCount":10}]

make_list_if operator jest podobny do make_list, z wyjątkiem tego, że akceptuje również predykat.