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:

Into Group

In alternativa

Into <alias> = 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 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 From (Visual Basic)

Clausola Order By (Visual Basic)

Clausola Aggregate (Visual Basic)

Clausola Group Join (Visual Basic)

Concetti

Introduzione a LINQ in Visual Basic

Altre risorse

Query (Visual Basic)