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 Order By (Visual Basic)
Clausola di aggregazione (Visual Basic)
Clausola Group Join (Visual Basic)