Group By – klauzule (Visual Basic)

Seskupí prvky výsledku dotazu. Lze také použít pro použití agregačních funkcí u každé skupiny. Operace seskupení je založená na jednom nebo více klíčích.

Syntax

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

Součásti

  • listField1, listField2

    Nepovinný parametr. Jedno nebo více polí proměnné dotazu nebo proměnných, která explicitně identifikují pole, která se mají zahrnout do seskupených výsledků. Pokud nejsou zadána žádná pole, jsou všechna pole proměnné dotazu nebo proměnných zahrnuta do seskupených výsledků.

  • keyExp1

    Povinná hodnota. Výraz, který identifikuje klíč, který se má použít k určení skupin prvků. Složený klíč můžete zadat zadáním více než jednoho klíče.

  • keyExp2

    Nepovinný parametr. Jeden nebo více dalších klíčů, které se kombinují s keyExp1 , aby se vytvořil složený klíč.

  • aggregateList

    Povinná hodnota. Jeden nebo více výrazů, které identifikují způsob agregace skupin. Pokud chcete identifikovat název člena pro seskupené výsledky, použijte klíčové slovo , které může být v jedné Group z následujících forem:

    Into Group  
    

    -nebo-

    Into <alias> = Group  
    

    Můžete také zahrnout agregační funkce, které se použijí pro skupinu.

Poznámky

Pomocí klauzule Group By můžete rozdělit výsledky dotazu na skupiny. Seskupení je založené na klíči nebo složeném klíči, který se skládá z více klíčů. Prvky, které jsou přidruženy k odpovídajícím hodnotám klíče, jsou zahrnuty ve stejné skupině.

Pomocí parametru klauzule a klíčového slova identifikujete název členu, který se používá aggregateList Into k Group odkazování na skupinu. Do klauzule můžete také zahrnout Into agregační funkce pro výpočet hodnot pro seskupené prvky. Seznam standardních agregačních funkcí najdete v tématu Agregační klauzule.

Příklad

Následující příklad kódu seskupí seznam zákazníků na základě jejich umístění (země/oblast) a poskytne počet zákazníků v každé skupině. Výsledky jsou seřazené podle názvu země nebo oblasti. Seskupené výsledky jsou seřazené podle názvu města.

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

Viz také