Partager via


make_list() (fonction d’agrégation)

S’applique à : ✅Microsoft Fabric

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_asc() la array_sort_desc() fonction pour créer une liste triée par une clé.

Exemples

Les exemples de cette section montrent comment utiliser la syntaxe pour vous aider à commencer.

Une colonne

L’exemple suivant utilise la table de données, shapes, pour renvoyer une liste de formes dans 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 utilise la fonction make_list et la clause by pour créer deux listes d’objets regroupés selon qu’ils ont un nombre pair ou impair de côtés.

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. Elle retourne une colonne avec une table booléenne isEvenSideCount indiquant si le nombre latéral est pair ou impair et une colonne mylist qui contient des listes de sacs emballés dans chaque catégorie.

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}]