Clausola Group By (Visual Basic)
Raggruppa gli elementi di un risultato della query. Può essere usata anche per applicare funzioni di aggregazione a ogni gruppo. L'operazione di raggruppamento è basata su una o più chiavi.
Sintassi
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, tutti i campi della variabile o delle variabili di query vengono inclusi nel risultato raggruppato.
keyExp1
Obbligatorio. Espressione che identifica la chiave da usare per determinare i gruppi di elementi. È possibile specificare più di una chiave per specificare una chiave composta.
keyExp2
Facoltativo. Uno o più tasti aggiuntivi che vengono combinati 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, usare la parola chiave
Group
, che può essere in uno dei seguenti formati:Into Group
oppure
Into <alias> = Group
È anche possibile includere funzioni di aggregazione da applicare al gruppo.
Osservazioni:
È possibile usare la clausola Group By
per suddividere i risultati di una query in gruppi. Il raggruppamento è basato su una chiave o una chiave composta costituita da più chiavi. Gli elementi associati ai valori della chiave corrispondenti vengono inclusi nello stesso gruppo.
Per identificare il nome del membro che viene usato per fare riferimento al gruppo, usare il parametro aggregateList
della clausola Into
e la parola chiave Group
. È anche possibile includere funzioni di aggregazione nella clausola Into
per calcolare i valori per gli elementi raggruppati. Per un elenco di funzioni di aggregazione standard, vedere Aggregate Clause.
Esempio
L'esempio di codice seguente raggruppa un elenco di clienti in base alla località (paese/area) e fornisce un conteggio dei clienti in ogni gruppo. I risultati vengono ordinati in base al nome del paese o dell'area geografica. 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