Dela via


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

Se även