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

Lihat juga