Partager via


make_list() (fonction d’agrégation)

Crée un dynamic tableau de toutes les valeurs d’expr dans le groupe.

Les valeurs Null sont ignorées et ne sont pas prises en compte dans le calcul.

Remarque

Cette fonction est utilisée conjointement avec l’opérateur de synthèse.

Alias déconseillés : makelist()

Syntaxe

make_list(expr [, maxSize])

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
expr dynamic ✔️ Expression utilisée pour le calcul d’agrégation.
maxSize int Nombre maximal d’éléments retournés. La valeur par défaut et maximale est 1048576.

Remarque

La version déconseillée a une limite maxSize par défaut de 128.

Retours

Retourne un dynamic tableau de toutes les valeurs d’expr dans le groupe. Si l’entrée de l’opérateur summarize n’est pas triée, l’ordre des éléments dans le tableau résultant n’est pas défini. Si l’entrée de l’opérateur summarize est triée, l’ordre des éléments dans le tableau résultant effectue le suivi de celui de l’entrée.

Conseil

Utilisez la ou array_sort_desc() la array_sort_asc() fonction pour créer une liste triée par une clé.

Exemples

Une colonne

L’exemple suivant montre comment extraire une liste d’une seule colonne :

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)

Sortie

mylist
["triangle »,"square »,"rectangle »,"pentagone »,"hexagon »,"heptagon »,"octagon »,"nonagon »,"decagon"]

Utilisation de la clause 'by'

L’exemple suivant exécute une requête à l’aide de la by clause :

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

Sortie

isEvenSideCount mylist
false ["triangle »,"pentagone »,"heptagon »,"nonagon"]
true ["square »,"rectangle »,"hexagon »,"octagon »,"decagon"]

Empaquetage d’un objet dynamique

Les exemples suivants montrent comment empaquetage d’un objet dynamique dans une colonne avant d’en faire une liste.

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

Sortie

isEvenSideCount mylist
false [{"name » :"triangle »,"sideCount » :3},{"name » :"pentagone »,"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 l’opérateur est similaire à make_list, sauf qu’il accepte également un prédicat.