语法
GROUPING (expr)
参数说明
集列expr 必须为group by 字段,即在group by rollup/cube/grouping sets 的参数列
表中。
功能
GROUPING 用于区分数据中NULL 值和由GROUP BY 类函数(ROLLUP、
CUBE、
GROUPING SETS)
返回的NULL 值。
作为ROLLUP、
CUBE 或GROUPING
SETS 操作结果返回的NULL 是NULL 的特殊应用。
它在结果集内作为列的占位
符,表示全体。GROUPING 表示GROUP BY 列表中的表达式是否参与分组,返
回1 表示不参与分组,返回0 表示参与分组。对普通GROUP BY 表达式,
GROUPING 返回0。
示例
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
907
gbase> create table t1(i int,v varchar(10));
Query OK, 0 rows affected (Elapsed: 00:00:00.03)
gbase> insert into t1 values (2,'a'),(2,'b');
Query OK, 2 rows affected (Elapsed: 00:00:00.04)
Records: 2
Duplicates: 0
Warnings: 0
gbase> SELECT * from t1;
+------+------+
| i
| v
|
+------+------+
|
2 | a
|
|
2 | b
|
+------+------+
2 rows in set
gbase> SELECT i,v,grouping(i),grouping(v) from t1 group by rollup(i,v);
+------+------+-------------+-------------+
| i
| v
| grouping(i) | grouping(v) |
+------+------+-------------+-------------+
|
2 | a
|
0 |
0 |
|
2 | b
|
0 |
0 |
|
2 | NULL |
0 |
1 |
| NULL | NULL |
1 |
1 |
+------+------+-------------+-------------+
4 rows in set
gbase> SELECT i,v,grouping(i),grouping(v) from t1 group by grouping
sets(i,v);
+------+------+-------------+-------------+
| i
| v
| grouping(i) | grouping(v) |
+------+------+-------------+-------------+
| NULL | a
|
1 |
0 |
| NULL | b
|
1 |
0 |
|
2 | NULL |
0 |
1 |
+------+------+-------------+-------------+
3 rows in set
gbase> SELECT i,v,grouping(i),grouping(v) from t1 group by rollup(i,v) order
by grouping(v) desc;
+------+------+-------------+-------------+
| i
| v
| grouping(i) | grouping(v) |
+------+------+-------------+-------------+
|
2 | NULL |
0 |
1 |
| NULL | NULL |
1 |
1 |
|
2 | b
|
0 |
0 |
|
2 | a
|
0 |
0 |
+------+------+-------------+-------------+
4 rows in set
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
908
gbase> SELECT i,v,grouping(i),grouping(v) from t1 group by rollup(i,v)
having grouping(v)>0;
+------+------+-------------+-------------+
| i
| v
| grouping(i) | grouping(v) |
+------+------+-------------+-------------+
|
2 | NULL |
0 |
1 |
| NULL | NULL |
1 |
1 |
+------+------+-------------+-------------+
2 rows in set