Condividi tramite


Clausola Group By (Visual Basic)

Raggruppa gli elementi di un risultato della query. Può essere usato anche per applicare funzioni di aggregazione a ogni gruppo. L'operazione di raggruppamento si basa su una o più chiavi.

Sintassi

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

oppure

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

Parti

  • listField1, listField2

    Opzionale. 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 vengono specificati campi, tutti i campi della variabile o delle variabili di query vengono inclusi nel risultato raggruppato.

  • alias1, alias2

    Opzionale. Nomi assegnati alle chiavi di raggruppamento. Se vengono forniti alias, è possibile farvi riferimento nel risultato della query anziché nelle espressioni chiave.

  • keyExp1

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

  • keyExp2

    Opzionale. Una o più chiavi aggiuntive combinate con keyExp1 per creare una chiave composita.

  • aggregateList

    Obbligatorio. Una o più espressioni che identificano la modalità di aggregazione dei gruppi. Per identificare un nome di membro per i risultati raggruppati, usare la Group parola chiave , che può essere in una delle forme seguenti:

    Into Group  
    

    oppure

    Into <alias> = Group  
    

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

Osservazioni:

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

Usare il aggregateList parametro della Into clausola e la Group parola chiave per identificare il nome del membro usato per fare riferimento al gruppo. È anche possibile includere funzioni di aggregazione nella Into clausola per calcolare i valori per gli elementi raggruppati. Per un elenco delle funzioni di aggregazione standard, vedere Clausola di aggregazione.

Esempio

L'esempio di codice seguente raggruppa un elenco di clienti in base alla propria località (paese/area geografica) 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

Vedere anche