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.

Notes

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

Alias dépréciés : makelist()

Syntax

make_list(expr [,maxSize])

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire 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 la valeur maximale sont 1048576.

Notes

La version déprécié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 suit celui de l’entrée.

Conseil

Utilisez la fonction ou array_sort_desc() pour créer une liste ordonnée à l’aide array_sort_asc() d’une clé.

Exemples

Une colonne

L’exemple suivant crée une liste à partir 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 »,"octogone »,"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 »,"octogone »,"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 » :"octogone »,"sideCount » :8},{"name » :"decagon »,"sideCount » :10}]

make_list_if l’opérateur est similaire à make_list, sauf qu’il accepte également un prédicat.