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 aggregateList
Into
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