Groeperen op component (Visual Basic)
Hiermee worden de elementen van een queryresultaat gegroepeerd. Kan ook worden gebruikt om statistische functies toe te passen op elke groep. De groeperingsbewerking is gebaseerd op een of meer sleutels.
Syntaxis
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
generator
listField1
,listField2
Optioneel. Een of meer velden van de queryvariabele of -variabelen waarmee expliciet de velden worden geïdentificeerd die moeten worden opgenomen in het gegroepeerde resultaat. Als er geen velden zijn opgegeven, worden alle velden van de queryvariabele of -variabelen opgenomen in het gegroepeerde resultaat.
keyExp1
Vereist. Een expressie die de sleutel identificeert die moet worden gebruikt om de groepen elementen te bepalen. U kunt meer dan één sleutel opgeven om een samengestelde sleutel op te geven.
keyExp2
Optioneel. Een of meer extra sleutels die worden gecombineerd met
keyExp1
het maken van een samengestelde sleutel.aggregateList
Vereist. Een of meer expressies die bepalen hoe de groepen worden samengevoegd. Als u een lidnaam voor de gegroepeerde resultaten wilt identificeren, gebruikt u het
Group
trefwoord, dat zich in een van de volgende formulieren kan bevinden:Into Group
– of –
Into <alias> = Group
U kunt ook statistische functies opnemen die op de groep moeten worden toegepast.
Opmerkingen
U kunt de Group By
component gebruiken om de resultaten van een query in groepen op te splitsen. De groepering is gebaseerd op een sleutel of een samengestelde sleutel die bestaat uit meerdere sleutels. Elementen die zijn gekoppeld aan overeenkomende sleutelwaarden, worden opgenomen in dezelfde groep.
U gebruikt de aggregateList
parameter van de Into
component en het Group
trefwoord om de lidnaam te identificeren die wordt gebruikt om naar de groep te verwijzen. U kunt ook statistische functies in de Into
component opnemen om waarden voor de gegroepeerde elementen te berekenen. Zie Aggregaatcomponent voor een lijst met standaardaggregatiesfuncties.
Opmerking
In het volgende codevoorbeeld wordt een lijst met klanten gegroepeerd op basis van hun locatie (land/regio) en worden de klanten in elke groep geteld. De resultaten worden gesorteerd op land-/regionaam. De gegroepeerde resultaten worden gerangschikt op plaatsnaam.
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