GROUP BY-Klausel (Visual Basic)
Gruppiert die Elemente eines Abfrageergebnisses. Kann auch verwendet werden, um Aggregatfunktionen auf die einzelnen Gruppen anzuwenden. Die Gruppierungsoperation basiert auf einem oder mehreren Schlüsseln.
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
Bestandteile
Ausdruck |
Definition |
listField1, listField2 |
Optional. Ein oder mehrere Felder der Abfragevariablen, die die in das gruppierte Ergebnis einzuschließenden Felder explizit identifizieren. Wenn keine Felder angegeben sind, werden alle Felder der Abfragevariablen in das gruppierte Ergebnis eingeschlossen. |
keyExp1 |
Erforderlich. Ein Ausdruck, der den Schlüssel angibt, der zur Bestimmung der Gruppen von Elementen verwendet wird. Sie können mehrere Schlüssel angeben, um einen zusammengesetzten Schlüssel festzulegen. |
keyExp2 |
Optional. Ein oder mehrere zusätzliche Schlüssel, die mit keyExp1 kombiniert werden, um einen zusammengesetzten Schlüssel zu erstellen. |
aggregateList |
Erforderlich. Ein oder mehrere Ausdrücke, die festlegen, wie die Gruppen aggregiert werden. Verwenden Sie das Group-Schlüsselwort, um einen Membernamen für die gruppierten Ergebnisse festzulegen. Dieses kann folgende Formate haben:
– oder –
Sie können auch Aggregatfunktionen auf die Gruppe anwenden. |
Hinweise
Mit der Group By-Klausel können Sie Ergebnisse einer Abfrage in Gruppen gliedern. Die Gruppierung basiert auf einem Schlüssel oder einem zusammengesetzten Schlüssel, der aus mehreren Schlüsseln besteht. Elemente, die übereinstimmenden Schlüsselwerten zugeordnet werden, sind in derselben Gruppe enthalten.
Mit dem aggregateList-Parameter der Into-Klausel und dem Group-Schlüsselwort legen Sie den Membernamen fest, der zum Verweisen auf die Gruppe verwendet wird. Sie können auch Aggregatfunktionen in die Into-Klausel einschließen, um Werte für die gruppierten Elemente zu berechnen. Eine Liste von Standardaggregatfunktionen finden Sie unter Aggregate-Klausel (Visual Basic).
Beispiel
Im folgenden Codebeispiel wird eine Liste von Kunden nach Wohnort (Land) gruppiert. Außerdem werden die Kunden der einzelnen Gruppen gezählt. Die Ergebnisse werden nach Ländernamen geordnet. Die gruppierten Ergebnisse werden nach dem Ortsnamen geordnet.
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
Siehe auch
Referenz
ORDER BY-Klausel (Visual Basic)
Aggregate-Klausel (Visual Basic)
Group Join-Klausel (Visual Basic)
Konzepte
Einführung in LINQ in Visual Basic