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,listField2Nepovinný 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ů.
keyExp1Povinná 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.
keyExp2Nepovinný parametr. Jeden nebo více dalších klíčů, které se kombinují s
keyExp1, aby se vytvořil složený klíč.aggregateListPovinná 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é
Groupz následujících forem:Into Group-nebo-
Into <alias> = GroupMůž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