全部產品
Search
文件中心

PolarDB:GROUP_ID

更新時間:Jul 06, 2024

GROUP_ID用於區分重複的分組。

說明

當查詢結果中出現重複的分組,您可以通過GROUP_ID來區分這些重複的分組,GROUP_ID將返回一個INTEGER類型的唯一標識來區分。

如果特定分組存在n個重複項,則GROUP_IP返回範圍為0n-1的數字。

說明 該函數僅適用於包含GROUP BY子句的SELECT語句。

樣本

本樣本中表內容如下:

 a | b | c
---+---+---
 1 | 2 | 3
  • 使用group by rollup(a, b, c)進行分組,可以產生(a, b, c)(a, b)(a)()四個不同的分組。查詢語句如下:
    SELECT a, b, c, grouping(a, b, c), group_id() FROM t group by rollup(a, b, c) order by grouping(a, b, c);

    查詢結果如下:

     a | b | c | grouping | group_id
    ---+---+---+----------+----------
     1 | 2 | 3 |        0 |        0
     1 | 2 |   |        1 |        0
     1 |   |   |        3 |        0
       |   |   |        7 |        0
    (4 rows)
  • 使用group by rollup(a, b, c), a, b進行分組,也可以產生四個分組,其中會有三個重複的分組(a,b),查詢語句如下:
    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);

    查詢結果如下:

     a | b | c | grouping | group_id
    ---+---+---+----------+----------
     1 | 2 | 3 |        0 |        0
     1 | 2 |   |        1 |        0
     1 | 2 |   |        1 |        1
     1 | 2 |   |        1 |        2
    (4 rows)

對於首次出現的分組,GROUP_ID的值為0;對於重複的分組, GROUP_ID的值從1開遞增。