Partager via


Group By, clause (Visual Basic)

Regroupe les éléments d’un résultat de requête. Peut également être utilisé pour appliquer des fonctions d’agrégation à chaque groupe. L’opération de regroupement est basée sur une ou plusieurs clés.

Syntaxe

Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]  
  Into aggregateList  

Pièces

  • listField1, listField2

    Optionnel. Un ou plusieurs champs de la variable de requête ou des variables qui identifient explicitement les champs à inclure dans le résultat groupé. Si aucun champ n’est spécifié, tous les champs de la variable de requête ou des variables sont inclus dans le résultat groupé.

  • keyExp1

    Obligatoire. Expression qui identifie la clé à utiliser pour déterminer les groupes d’éléments. Vous pouvez spécifier plusieurs clés pour spécifier une clé composite.

  • keyExp2

    Optionnel. Une ou plusieurs clés supplémentaires associées keyExp1 à la création d’une clé composite.

  • aggregateList

    Obligatoire. Une ou plusieurs expressions qui identifient la façon dont les groupes sont agrégés. Pour identifier un nom de membre pour les résultats groupés, utilisez le Group mot clé, qui peut se trouver sous l’une des formes suivantes :

    Into Group  
    

    - ou -

    Into <alias> = Group  
    

    Vous pouvez également inclure des fonctions d’agrégation à appliquer au groupe.

Remarques

Vous pouvez utiliser la Group By clause pour décomposer les résultats d’une requête en groupes. Le regroupement est basé sur une clé ou une clé composite composée de plusieurs clés. Les éléments associés aux valeurs de clé correspondantes sont inclus dans le même groupe.

Vous utilisez le aggregateList paramètre de la Into clause et le Group mot clé pour identifier le nom du membre utilisé pour référencer le groupe. Vous pouvez également inclure des fonctions d’agrégation dans la Into clause pour calculer les valeurs des éléments groupés. Pour obtenir la liste des fonctions d’agrégation standard, consultez Clause d’agrégation.

Exemple :

L’exemple de code suivant regroupe une liste de clients en fonction de leur emplacement (pays/région) et fournit un nombre de clients dans chaque groupe. Les résultats sont classés par nom de pays/région. Les résultats regroupés sont classés par nom de ville.

Public Sub GroupBySample()
    Dim customers = GetCustomerList()

    Dim customersByCountry = From cust In customers
                             Order By cust.City
                             Group By CountryName = cust.Country
                             Into RegionalCustomers = Group, Count()
                             Order By CountryName

    For Each country In customersByCountry
        Console.WriteLine(country.CountryName &
                          " (" & country.Count & ")" & vbCrLf)

        For Each customer In country.RegionalCustomers
            Console.WriteLine(vbTab & customer.CompanyName &
                              " (" & customer.City & ")")
        Next
    Next
End Sub

Voir aussi