Group By, clause (Visual Basic)
Groupe les éléments d'un résultat de requête. Cette clause peut être également utilisée pour appliquer des fonctions d'agrégation à chaque groupe. L'opération de regroupement est basée sur une ou plusieurs clés.
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
Composants
Terme |
Définition |
listField1, listField2 |
Facultatif. 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 ou des variables de requête sont inclus dans le résultat groupé. |
keyExp1 |
Obligatoire. Expression identifiant 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 |
Facultatif. Une ou plusieurs clés supplémentaires, combinées avec keyExp1 pour créer une clé composite. |
aggregateList |
Obligatoire. Une ou plusieurs expressions identifiant la manière dont les groupes sont constitués. Pour identifier un nom de membre pour les résultats groupés, utilisez le mot clé Group, qui peut être dans l'un ou l'autre des formulaires suivants :
ou
Vous pouvez également inclure des fonctions d'agrégation à appliquer au groupe. |
Notes
Vous pouvez utiliser la clause Group By pour détailler les résultats d'une requête dans des groupes. Le regroupement est basé sur une clé ou une clé composite qui se compose de plusieurs clés. Les éléments associés aux valeurs de clés correspondantes sont inclus dans le même groupe.
Vous utilisez le paramètre aggregateList de la clause Into et le mot clé Group pour identifier le nom de membre utilisé pour référencer le groupe. Vous pouvez également inclure des fonctions d'agrégation à la clause Into pour calculer des valeurs des éléments groupés. Pour obtenir la liste de fonctions d'agrégation standard, consultez Aggregate, clause (Visual Basic).
Exemple
L'exemple de code suivant groupe une liste de clients sur la base de leur emplacement (pays/région) et fournit le nombre de clients dans chaque groupe. Les résultats sont classés par nom de pays/région. Les résultats groupé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
Référence
Order By, clause (Visual Basic)
Aggregate, clause (Visual Basic)
Group Join, clause (Visual Basic)
Concepts
Introduction à LINQ dans Visual Basic