GROUP_ID用於區分重複的分組。
說明
當查詢結果中出現重複的分組,您可以通過GROUP_ID來區分這些重複的分組,GROUP_ID將返回一個INTEGER類型的唯一標識來區分。
如果特定分組存在n個重複項,則GROUP_IP返回範圍為0
到n-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開遞增。