Freigeben über


Group By Clause (Visual Basic)

Gruppiert die Elemente eines Abfrageergebnisses. Kann auch verwendet werden, um Aggregatfunktionen auf jede Gruppe anzuwenden. Der Gruppierungsvorgang basiert auf einem oder mehreren Schlüsseln.

Syntax

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

-oder-

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

Bestandteile

  • listField1, listField2

    Wahlfrei. Mindestens ein Feld der Abfragevariable oder -variablen, die explizit die Felder identifizieren, die in das gruppierte Ergebnis eingeschlossen werden sollen. Wenn keine Felder angegeben werden, werden alle Felder der Abfragevariablen oder -variablen in das gruppierte Ergebnis eingeschlossen.

  • alias1, alias2

    Wahlfrei. Namen, die den Gruppierungsschlüsseln zugewiesen sind. Wenn Aliase bereitgestellt werden, können sie im Abfrageergebnis anstelle der Schlüsselausdrücke referenziert werden.

  • keyExp1

    Erforderlich. Ein Ausdruck, der den Schlüssel identifiziert, der zum Bestimmen der Gruppen von Elementen verwendet werden soll. Sie können mehrere Schlüssel angeben, um einen zusammengesetzten Schlüssel anzugeben.

  • keyExp2

    Wahlfrei. Ein oder mehrere zusätzliche Schlüssel, die kombiniert keyExp1 werden, um einen zusammengesetzten Schlüssel zu erstellen.

  • aggregateList

    Erforderlich. Mindestens ein Ausdruck, der angibt, wie die Gruppen aggregiert werden. Um einen Membernamen für die gruppierten Ergebnisse zu identifizieren, verwenden Sie das Group Schlüsselwort, das sich in einer der folgenden Formen befinden kann:

    Into Group  
    

    -oder-

    Into <alias> = Group  
    

    Sie können auch Aggregatfunktionen einschließen, die auf die Gruppe angewendet werden sollen.

Bemerkungen

Sie können die Group By Klausel verwenden, um die Ergebnisse einer Abfrage in Gruppen zu unterteilen. Die Gruppierung basiert auf einem Schlüssel oder einem zusammengesetzten Schlüssel, der aus mehreren Schlüsseln besteht. Elemente, die übereinstimmenden Schlüsselwerten zugeordnet sind, sind in derselben Gruppe enthalten.

Sie verwenden den aggregateList Parameter der Into Klausel und das Group Schlüsselwort, um den Membernamen zu identifizieren, 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 der Standardaggregatfunktionen finden Sie unter "Aggregatklausel".

Beispiel

Im folgenden Codebeispiel wird eine Liste von Kunden basierend auf ihrem Standort (Land/Region) gruppiert und eine Anzahl der Kunden in jeder Gruppe bereitgestellt. Die Ergebnisse werden nach dem Namen des Landes/der Region sortiert. Die gruppierten Ergebnisse werden nach Ortsnamen sortiert.

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