Freigeben über


GROUP BY-Klausel (Visual Basic)

Aktualisiert: November 2007

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

  • 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
    

    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

Konzepte

Einführung in LINQ in Visual Basic

Referenz

Select-Klausel (Visual Basic)

From-Klausel (Visual Basic)

ORDER BY-Klausel (Visual Basic)

Aggregate-Klausel (Visual Basic)

Group Join-Klausel (Visual Basic)

Weitere Ressourcen

Abfragen (Visual Basic)