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.
keyExp1Gereklidir. Öğ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
keyExp1veya daha fazla ek anahtar.aggregateListGereklidir. 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
Groupformlardan herhangi biri içinde yer alan anahtar sözcüğünü kullanın:Into Group-veya-
Into <alias> = GroupGruba 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