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  

Součástky

  • listField1, listField2

    Nepovinné. 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.

  • 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

    Nepovinné. 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é