Group By Tümcesi (Visual Basic)

Sorgu sonuçlarının öğelerini gruplar. Her gruba toplama işlevleri uygulamak için de kullanılabilir. Gruplama işlemi bir veya daha fazla anahtara dayalıdır.

Syntax

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

Bölümler

  • listField1, listField2

    İsteğe bağlı. Sorgu değişkeninin veya değişkenlerinin gruplandırarak elde 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ı gruplara dahil edilir.

  • keyExp1

    Gereklidir. Öğe gruplarını belirlemek için kullanmak üzere anahtarı tanımlayan bir ifade. Bileşik anahtar belirtmek için birden fazla anahtar belirtesiniz.

  • keyExp2

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

  • aggregateList

    Gereklidir. Grupların nasıl toplanmış olduğunu belirlemek için bir veya daha fazla ifade. Gruplandırmış sonuçlar için üye adını tanımlamak üzere, aşağıdaki Group formlardan herhangi biri içinde yer alan anahtar sözcüğünü kullanın:

    Into Group  
    

    -veya-

    Into <alias> = Group  
    

    Gruba uygulanacak toplama işlevlerini de dahil edersiniz.

Açıklamalar

Bir sorgunun sonuçlarını Group By gruplara bozmak için yan tümcesini kullanabilirsiniz. Gruplama, bir anahtara veya birden çok anahtardan oluşan bileşik anahtara dayalıdır. Eşleşen anahtar değerleriyle ilişkili öğeler aynı gruba dahil edilir.

Gruba başvuru yapmak için kullanılan üye adını tanımlamak için yan tümcesi parametresini ve aggregateList Into anahtar Group sözcüğünü kullanırsiniz. Gruplanmış öğelerin değerlerini hesaplamak için yan Into tümcesine toplama işlevleri de dahil edersiniz. Standart toplama işlevlerinin listesi için bkz. Aggregate Clause.

Örnek

Aşağıdaki kod örneği, konumlarına (ülke/bölge) göre bir müşteri listesi gruplar ve her gruptaki müşterilerin sayısını sağlar. Sonuçlar ülke/bölge adına göre sıralandı. Grup edilen sonuçlar şehir adına göre sıralandı.

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.