Clausola Group By (Visual Basic)
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
Argomento |
Definizione |
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:
In alternativa
È 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 Aggregate (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
Riferimenti
Clausola Select (Visual Basic)
Clausola Order By (Visual Basic)
Clausola Aggregate (Visual Basic)
Clausola Group Join (Visual Basic)
Concetti
Introduzione a LINQ in Visual Basic