全部产品
Search
文档中心

PolarDB:GROUP_ID

更新时间:Jul 02, 2025

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, b untuk 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.