Gruppera efter -sats (Visual Basic)
Grupperar elementen i ett frågeresultat. Kan också användas för att tillämpa aggregeringsfunktioner på varje grupp. Grupperingsåtgärden baseras på en eller flera nycklar.
Syntax
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
Delar
listField1
,listField2
Valfritt. Ett eller flera fält i frågevariabeln eller variablerna som uttryckligen identifierar de fält som ska ingå i det grupperade resultatet. Om inga fält anges inkluderas alla fält i frågevariabeln eller variablerna i det grupperade resultatet.
keyExp1
Obligatoriska. Ett uttryck som identifierar nyckeln som ska användas för att fastställa grupper av element. Du kan ange mer än en nyckel för att ange en sammansatt nyckel.
keyExp2
Valfritt. En eller flera ytterligare nycklar som kombineras med
keyExp1
för att skapa en sammansatt nyckel.aggregateList
Obligatoriska. Ett eller flera uttryck som identifierar hur grupperna aggregeras. Om du vill identifiera ett medlemsnamn för de grupperade resultaten använder du nyckelordet
Group
, som kan finnas i något av följande formulär:Into Group
-eller-
Into <alias> = Group
Du kan också inkludera aggregeringsfunktioner som ska tillämpas på gruppen.
Kommentarer
Du kan använda Group By
-satsen för att dela upp resultatet av en fråga i grupper. Gruppering baseras på en nyckel eller en sammansatt nyckel som består av flera nycklar. Element som är associerade med matchande nyckelvärden ingår i samma grupp.
Du använder parametern aggregateList
för Into
-satsen och nyckelordet Group
för att identifiera det medlemsnamn som används för att referera till gruppen. Du kan också inkludera aggregerade funktioner i Into
-satsen för beräkningsvärden för de grupperade elementen. En lista över standardaggregeringsfunktioner finns i Aggregeringssatsen.
Exempel
I följande kodexempel grupperas en lista över kunder baserat på deras plats (land/region) och antalet kunder i varje grupp. Resultaten sorteras efter namn på land/region. De grupperade resultaten sorteras efter ortnamn.
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