Sdílet prostřednictvím


Group By – klauzule (Visual Basic)

Seskupí prvky výsledku dotazu. Dá se také použít k použití agregačních funkcí pro každou skupinu. Operace seskupení je založená na jednom nebo více klíčích.

Syntaxe

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

nebo

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

Součástky

  • listField1, listField2

    Volitelný. Jedno nebo více polí proměnné dotazu nebo proměnných, která explicitně identifikují pole, která mají být zahrnuta do seskupeného výsledku. Pokud nejsou zadána žádná pole, jsou všechna pole proměnné dotazu nebo proměnných zahrnuta do seskupeného výsledku.

  • alias1, alias2

    Volitelný. Názvy přiřazené ke klíčům seskupení. Pokud jsou k dispozici aliasy, dají se místo klíčových výrazů odkazovat ve výsledku dotazu.

  • keyExp1

    Povinné. Výraz, který identifikuje klíč, který se má použít k určení skupin prvků. Můžete zadat více než jeden klíč pro zadání složeného klíče.

  • keyExp2

    Volitelný. Jeden nebo více dalších klíčů, které jsou kombinovány s keyExp1 cílem vytvořit složený klíč.

  • aggregateList

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

    Into Group  
    

    nebo

    Into <alias> = Group  
    

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

Poznámky

Klauzuli Group By můžete použít k rozdělení výsledků dotazu do skupin. Seskupení vychází z klíče nebo složeného klíče, který se skládá z více klíčů. Prvky přidružené ke shodným hodnotám klíče jsou zahrnuty do stejné skupiny.

Pomocí aggregateList parametru Into klauzule a klíčového Group slova identifikujete název člena, který se používá k odkazování na skupinu. Do klauzule můžete zahrnout také agregační funkce Into , které počítají hodnoty 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ě/oblasti) 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é