Condividi tramite


Clausola Group By (Visual Basic)

Aggiornamento: novembre 2007

Raggruppa gli elementi di un risultato della query. Può anche essere utilizzato per applicare le funzioni di aggregazione a ogni gruppo. L'operazione di raggruppamento è basata su uno o più chiavi.

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

Parti

  • listField1, listField2
    Facoltativo. Uno o più campi della variabile o delle variabili di query che identificano in modo esplicito i campi da includere nel risultato raggruppato. Se non sono specificati campi, vengono inclusi nel risultato raggruppato tutti i campi della variabile o delle variabili di query.

  • keyExp1
    Obbligatorio. Espressione che identifica la chiave da utilizzare per determinare i gruppi di elementi. È possibile specificare più di una chiave per definire una chiave composta.

  • keyExp2
    Facoltativo. Uno o chiavi più aggiuntive combinate con keyExp1 per creare una chiave composta.

  • aggregateList
    Obbligatorio. Una o più espressioni che identificano come vengono aggregati i gruppi. Per identificare un nome di membro per i risultati raggruppati, utilizzare la parola chiave Group che può essere in dei seguenti formati:

    Into Group
    

    È anche possibile includere funzioni di aggregazione da applicare al gruppo.

Note

È possibile utilizzare la clausola Group By per suddividere in gruppi i risultati di una query. Il raggruppamento è basato su una chiave o su una chiave composta costituita da più chiavi. Gli elementi associati ai valori delle chiavi corrispondenti vengono inclusi nello stesso gruppo.

Si utilizza il parametro aggregateList della clausola Into e la parola chiave Group per identificare il nome di membro utilizzato per fare riferimento al gruppo. È anche possibile includere funzioni di aggregazione nella clausola Into per calcolare valori per gli elementi raggruppati. Per un elenco delle funzioni di aggregazione standard, vedere Clausola di aggregazione (Visual Basic).

Esempio

Nell'esempio di codice seguente viene raggruppato un elenco di clienti basandosi sulla loro località (paese) e viene fornito un conteggio dei clienti in ogni gruppo. I risultati vengono ordinati in base al nome del paese. I risultati raggruppati vengono ordinati in base al nome della città.

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

Vedere anche

Concetti

Introduzione a LINQ in Visual Basic

Riferimenti

Clausola Select (Visual Basic)

Clausola From (Visual Basic)

Clausola Order By (Visual Basic)

Clausola di aggregazione (Visual Basic)

Clausola Group Join (Visual Basic)

Altre risorse

Query (Visual Basic)