Group By – klauzule (Visual Basic)

Seskupí prvky výsledku dotazu. Dá se také použít k použití agregačních funkcí na každou skupinu. 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, všechna pole proměnné dotazu nebo proměnných se zahrnou do seskupeného výsledku.

  • keyExp1

    Povinná hodnota. Výraz, který identifikuje klíč, který se má použít k určení skupin prvků. Pokud chcete zadat složený klíč, můžete zadat více než jeden klíč.

  • keyExp2

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

  • aggregateList

    Povinná hodnota. Jeden nebo více výrazů, které identifikují způsob agregace skupin. K identifikaci názvu člena pro seskupené výsledky použijte Group klíčové slovo, které může být v některé 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 do skupin. Seskupení je založené na klíči nebo složeného klíče, 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 do stejné skupiny.

Parametr klauzule a Group klíčové slovo použijete aggregateListInto k identifikaci názvu člena, který se používá k odkazování na skupinu. Do klauzule můžete také zahrnout agregační funkce Into pro výpočet hodnot seskupených prvků. Seznam standardních agregačních funkcí najdete v tématu Agregační klauzule.

Příklad

Následující příklad kódu seskupuje seznam zákazníků podle jejich umístění (země/oblasti) a poskytuje 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é