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 aggregateList
Into
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