Group By Tümcesi (Visual Basic)

Sorgu sonucunun öğelerini gruplandırma. Her gruba toplama işlevleri uygulamak için de kullanılabilir. Gruplandırma işlemi bir veya daha fazla anahtarı temel alır.

Sözdizimi

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

Parça

  • listField1, listField2

    isteğe bağlı. Sorgu değişkeninin veya değişkenlerin gruplandırılmış sonuca dahil edilecek alanları açıkça tanımlayan bir veya daha fazla alanı. Hiçbir alan belirtilmezse, sorgu değişkeninin veya değişkenlerin tüm alanları gruplandırılmış sonuda eklenir.

  • keyExp1

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

  • keyExp2

    isteğe bağlı. Bileşik anahtar oluşturmak için ile keyExp1 birleştirilen bir veya daha fazla ek anahtar.

  • aggregateList

    Gerekli. Grupların nasıl toplandığını tanımlayan bir veya daha fazla ifade. Gruplandırılmış sonuçların üye adını tanımlamak için aşağıdaki formlardan birinde olabilecek anahtar sözcüğünü kullanın Group :

    Into Group  
    

    -veya-

    Into <alias> = Group  
    

    Gruba uygulanacak toplama işlevlerini de ekleyebilirsiniz.

Açıklamalar

Bir sorgunun sonuçlarını gruplara ayırmak için yan tümcesini Group By kullanabilirsiniz. Gruplandırma, birden çok anahtardan oluşan bir anahtarı veya bileşik anahtarı temel alır. Eşleşen anahtar değerleriyle ilişkilendirilmiş öğeler aynı gruba eklenir.

Gruba başvurmak aggregateListInto için kullanılan üye adını tanımlamak için yan tümcesinin parametresini ve Group anahtar sözcüğünü kullanırsınız. Gruplandırılmış öğelerin değerlerini hesaplamak için yan tümcesine toplama işlevleri Into de ekleyebilirsiniz. Standart toplama işlevlerinin listesi için bkz . Aggregate Yan Tümcesi.

Örnek

Aşağıdaki kod örneği, konumlarına (ülke/bölge) göre bir müşteri listesi gruplandırmaktadır ve her gruptaki müşterilerin sayısını sağlar. Sonuçlar ülke/bölge adına göre sıralanır. Gruplandırılmış 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.