Megosztás a következőn keresztül:


Csoportosítás záradék szerint (Visual Basic)

A lekérdezési eredmény elemeinek csoportosítása. Aggregátumfüggvényeket is alkalmazhat az egyes csoportokra. A csoportosítási művelet egy vagy több kulcson alapul.

Szemantika

Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]  
  Into aggregateList  

-vagy-

Group [ listField1 [, listField2 [...] ] By alias1 = keyExp1 [, alias2 = keyExp2 [...] ]  
  Into aggregateList  

Részek

  • listField1, listField2

    Opcionális. A lekérdezési változó vagy változók egy vagy több mezője, amely explicit módon azonosítja a csoportosított eredményben szerepeltetni kívánt mezőket. Ha nincs megadva mező, a lekérdezési változó vagy változó összes mezője szerepel a csoportosított eredményben.

  • alias1, alias2

    Opcionális. A csoportosítási kulcsokhoz rendelt nevek. Ha aliasok vannak megadva, a kulcskifejezések helyett a lekérdezés eredményében hivatkozhatnak rájuk.

  • keyExp1

    Szükséges. Az elemek csoportjainak meghatározásához használandó kulcsot azonosító kifejezés. Összetett kulcs megadásához több kulcsot is megadhat.

  • keyExp2

    Opcionális. Egy vagy több további kulcs, amely kombinálva keyExp1 van egy összetett kulcs létrehozásához.

  • aggregateList

    Szükséges. Egy vagy több kifejezés, amely azonosítja a csoportok összesítésének módját. A csoportosított eredmények tagnevének azonosításához használja a Group kulcsszót, amely az alábbi űrlapok bármelyikében szerepelhet:

    Into Group  
    

    -vagy-

    Into <alias> = Group  
    

    A csoportra alkalmazandó összesítő függvényeket is felvehet.

Megjegyzések

A záradék használatával Group By csoportokra bonthatja a lekérdezések eredményeit. A csoportosítás egy több kulcsból álló kulcson vagy összetett kulcson alapul. Az egyező kulcsértékekhez társított elemek ugyanabba a csoportba tartoznak.

aggregateList A záradék és a Into kulcsszó paraméterével Group azonosíthatja a csoportra való hivatkozáshoz használt tagnevet. A záradékban Into aggregátumfüggvényeket is belefoglalhat a csoportosított elemek értékeinek kiszámításához. A standard összesítő függvények listáját az Összesítési záradékban találja.

példa

Az alábbi példakód egy ügyfelek listáját csoportosítja a helyük (ország/régió) alapján, és az egyes csoportok ügyfeleinek számát adja meg. Az eredmények az ország/régió neve szerint vannak rendezve. A csoportosított eredmények városnév szerint vannak rendezve.

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

Lásd még