Group By Tümcesi (Visual Basic)

Bir sorgu sonucunun öğelerini gruplandırır. , Her gruba toplam işlevleri uygulamak için de kullanılabilir. Gruplandırma işlemi bir veya daha fazla anahtara göre belirlenir.

Syntax

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

Bölümler

  • listField1, listField2

    İsteğe bağlı. Gruplanmış sonuca dahil edilecek alanları açıkça tanımlayan sorgu değişkeninin veya değişkenlerinin bir veya daha fazla alanı. Hiçbir alan belirtilmemişse, sorgu değişkeni veya değişkenlerinin tüm alanları gruplanmış sonuca dahil edilir.

  • keyExp1

    Gereklidir. Öğe gruplarını belirlemekte kullanılacak anahtarı tanımlayan bir ifade. Bileşik bir anahtar belirtmek için birden fazla anahtar belirtebilirsiniz.

  • keyExp2

    İsteğe bağlı. Bileşik anahtar oluşturmak için ile birlikte birleştirilmiş bir veya daha fazla ek anahtar keyExp1 .

  • aggregateList

    Gereklidir. Grupların nasıl toplanacağına ilişkin bir veya daha fazla ifade. Gruplanmış sonuçların üye adını belirlemek için, Group aşağıdaki biçimlerden birinde olabilecek anahtar sözcüğünü kullanın:

    Into Group  
    

    -veya-

    Into <alias> = Group  
    

    Gruba uygulanacak toplama işlevlerini de ekleyebilirsiniz.

Açıklamalar

Group ByBir sorgunun sonuçlarını gruplara bölmek için yan tümcesini kullanabilirsiniz. Gruplandırma bir anahtara veya birden çok anahtardan oluşan bileşik anahtara göre belirlenir. Eşleşen anahtar değerleriyle ilişkili öğeler aynı gruba dahil edilir.

aggregateList Into Group Gruba başvurmak için kullanılan üye adını tanımlamak için yan tümcesinin ve anahtar sözcüğünün parametresini kullanırsınız. IntoGruplanmış öğeler için değerleri hesaplamak üzere yan tümcesine toplama işlevleri de ekleyebilirsiniz. Standart toplama işlevlerinin bir listesi için bkz. Aggregate yan tümcesi.

Örnek

Aşağıdaki kod örneği, konumlarına (ülke/bölge) göre müşterilerin bir listesini gruplandırır ve her bir gruptaki müşterilerin sayısını sağlar. Sonuçlar ülke/bölge adına göre sıralanır. Gruplanmış sonuçlar şehir adına göre sıralanır.

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

Ayrıca bkz.