Fungsi GROUP_ID digunakan untuk membedakan kelompok duplikat.
Deskripsi
Jika hasil kueri mencakup kelompok duplikat, Anda dapat menggunakan fungsi GROUP_ID untuk membedakan kelompok tersebut. Fungsi ini mengembalikan ID unik dengan tipe data INTEGER untuk membedakan kelompok duplikat.
Untuk kelompok tertentu dengan n duplikat, fungsi GROUP_ID mengembalikan angka dalam rentang 0 hingga n-1.
Catatan Fungsi ini hanya berlaku untuk pernyataan SELECT yang mencakup klausa GROUP BY.
Contoh
Tabel berikut digunakan dalam contoh ini.
a | b | c
---+---+---
1 | 2 | 3- Jika Anda menggunakan klausa
group by rollup(a, b, c)untuk mengelompokkan data, empat kelompok berbeda dihasilkan:a, b, c,(a, b),(a), dan(). Pernyataan berikut dieksekusi:SELECT a, b, c, grouping(a, b, c), group_id() FROM t group by rollup(a, b, c) order by grouping(a, b, c);Hasil berikut dikembalikan:
a | b | c | grouping | group_id ---+---+---+----------+---------- 1 | 2 | 3 | 0 | 0 1 | 2 | | 1 | 0 1 | | | 3 | 0 | | | 7 | 0 (4 baris) - Jika Anda menggunakan klausa
group by rollup(a, b, c), a, buntuk mengelompokkan data, empat kelompok dihasilkan, termasuk tiga kelompok duplikat(a,b). Pernyataan berikut dieksekusi:SELECT a, b, c, grouping(a, b, c), group_id() FROM t group by rollup(a, b, c), a, b order by grouping(a, b, c);Hasil berikut dikembalikan:
a | b | c | grouping | group_id ---+---+---+----------+---------- 1 | 2 | 3 | 0 | 0 1 | 2 | | 1 | 0 1 | 2 | | 1 | 1 1 | 2 | | 1 | 2 (4 baris)
Jika sebuah kelompok dihasilkan untuk pertama kalinya, nilai GROUP_ID untuk kelompok tersebut adalah 0. Untuk setiap duplikat dari kelompok ini, nilai GROUP_ID bertambah mulai dari 1.