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:

Into Group

– oder –

Into <alias> = Group

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

Select-Klausel (Visual Basic)

From-Klausel (Visual Basic)

ORDER BY-Klausel (Visual Basic)

Aggregate-Klausel (Visual Basic)

Group Join-Klausel (Visual Basic)

Konzepte

Einführung in LINQ in Visual Basic

Weitere Ressourcen

Abfragen (Visual Basic)