Klausul Group By (Visual Basic)
Mengelompokkan elemen hasil kueri. Dapat juga digunakan untuk menerapkan fungsi agregat ke setiap kelompok. Operasi pengelompokan didasarkan pada satu atau lebih kunci.
Sintaks
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
Generator
listField1
,listField2
Opsional. Satu atau beberapa bidang variabel kueri atau variabel yang secara eksplisit mengidentifikasi bidang yang akan disertakan dalam hasil yang dikelompokkan. Jika tidak ada bidang yang ditentukan, semua bidang variabel kueri atau variabel disertakan dalam hasil yang dikelompokkan.
keyExp1
Harus diisi. Ekspresi yang mengidentifikasi kunci yang digunakan untuk menentukan kelompok elemen. Anda dapat menentukan lebih dari satu kunci untuk menentukan kunci komposit.
keyExp2
Opsional. Satu atau beberapa kunci tambahan yang digabungkan dengan
keyExp1
untuk membuat kunci komposit.aggregateList
Harus diisi. Satu atau beberapa ekspresi yang mengidentifikasi cara grup digabungkan. Guna mengidentifikasi nama anggota untuk hasil yang dikelompokkan, gunakan kata kunci
Group
, yang bisa berada di salah satu formulir berikut:Into Group
-atau-
Into <alias> = Group
Anda juga dapat menyertakan fungsi agregat untuk diterapkan ke grup.
Keterangan
Anda bisa menggunakan klausul Group By
untuk memecah hasil kueri ke dalam kelompok-kelompok. Pengelompokan didasarkan pada kunci atau kunci komposit yang terdiri dari beberapa kunci. Elemen yang terkait dengan nilai kunci yang cocok disertakan dalam grup yang sama.
Anda menggunakan parameter aggregateList
dari klausul Into
dan kata kunci Group
untuk mengidentifikasi nama anggota yang digunakan untuk mereferensikan grup tersebut. Anda juga dapat menyertakan fungsi agregat dalam klausul Into
untuk menghitung nilai elemen yang dikelompokkan. Untuk daftar fungsi agregat standar, lihat Klausul Agregat.
Contoh
Contoh kode berikut mengelompokkan daftar pelanggan berdasarkan lokasi mereka (negara/wilayah) dan memberikan hitungan pelanggan di setiap grup. Hasilnya diurutkan berdasarkan nama negara/wilayah. Hasil yang dikelompokkan diurutkan berdasarkan nama kota.
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