返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

GROUP BY GROUPING SETS 函数
语法
GROUP BY GROUPING SETS( (…),(…),…)
功能
对GROUPING SETS 后面括号里的n 个字段或表达式分别做GROUP BY 操作,
最后将结果合并在一起。
详细解释
GROUP BY GROUPING SETS (A,B,C) (A、B、C 代表语法中的“(…)”)
首先对(A)进行GROUP BY,然后对(B)进行GROUP BY,然后对(C)进行GROUP
BY,最后将所有结果合并在一起(相当于UNION ALL 操作),如果n 个字段或
表达式中的一个或多个在某一分组中不出现在GROUP BY 后面,用NULL 代替
不出现的字段或表达式。
示例
示例中所用的表及数据:
DROP TABLE IF EXISTS t3;

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
884
CREATE TABLE t3 (color_type varchar(20),color_count int, in_date date);
INSERT INTO t3 (color_type,in_date,color_count)
VALUES('black','2010-09-11',18),
('black','2010-10-05',18),('black','2010-10-13',31),
('blue','2010-09-21',23),('blue','2010-09-30',15),
('blue','2010-10-11',62),('red','2010-09-12',41),
('red','2010-10-01',12),('red','2010-10-05',11);
示例1:GROUP BY GROUPING SETS(color_type,f_YearMonth)
gbase> SELECT color_type,in_date,color_count FROM t3 ORDER BY
color_type,in_date;
+------------+------------+-------------+
| color_type | in_date
| color_count |
+------------+------------+-------------+
| black
| 2010-09-11 |
18 |
| black
| 2010-10-05 |
18 |
| black
| 2010-10-13 |
31 |
| blue
| 2010-09-21 |
23 |
| blue
| 2010-09-30 |
15 |
| blue
| 2010-10-11 |
62 |
| red
| 2010-09-12 |
41 |
| red
| 2010-10-01 |
12 |
| red
| 2010-10-05 |
11 |
+------------+------------+-------------+
9 rows in set
gbase> SELECT NVL(color_type,'') as color_type_show,DECODE(color_ty
pe,NULL,f_YearMonth || '合计',NVL(f_YearMonth,color_type || ' 小计'))
AS f_YearMonth_show,SUM(color_count) FROM (SELECT color_type,DA
TE_FORMAT(in_date, '%Y-%m') as f_YearMonth,color_count FROM t3)
t GROUP BY GROUPING SETS(color_type,f_YearMonth) ORDER BY
color_type,f_YearMonth;
+-----------------+------------------+------------------+
| color_type_show | f_YearMonth_show | SUM(color_count) |
+-----------------+------------------+------------------+
| black
| black 小计
|
67 |
| blue
| blue 小计
|
100 |
| red
| red 小计
|
64 |
|
| 2010-09 合计
|
97 |
|
| 2010-10 合计
|
134 |
+-----------------+------------------+------------------+
5 rows in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
885

使用 DYNAMIC_LOGS 配置参数来允许当有必要防止事务阻塞时动态地添加逻辑日志。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 75 -

onconfig.std 值
DYNAMIC_LOGS 2

0 = 关闭动态日志分配。
1 = 关闭“log file required”报警并暂停来允许手工添加逻辑日志文件。您可在当前日
志文件之后立即添加日志文件,或添加到日志文件列表尾部。
2 = 开启动态日志分配。当数据库服务器动态地添加日志文件时,会关闭“dynamically
added log file”报警。
生效
对于 HDR:当数据库服务器关闭并重启时
对于 Enterprise Replication:当 Enterprise Replication 启动时
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。
用法
如果 DYNAMIC_LOGS 是 2,则当下一个活动的日志文件包含一个打开的事务时,数据库服
务器动态地分配一个新的日志文件。动态日志分配防止长事务从阻塞的事务回滚。
如果您想要选择新逻辑日志文件的大小和位置,则设置 DYNAMIC_LOGS 为 1。使用
onparams -a 命令来在当前日志文件之后添加一个日志文件,该命令带有大小(-s)、位
置(-d dbspace)和 -i 选项。
如果 DYNAMIC_LOGS 配置参数值是 0 且发生事务阻塞,则关闭数据库服务器,设置
DYNAMIC_LOGS 为 1 或 2,然后重启数据库服务器。
重要:
如果您正在使用带有动态日志分配的 Enterprise
Replication,
则请设置 LTXEHWM
不高于 70。

语法
回收用户的VC 访问权限方式有两种:

不指定虚拟集群名,即把USER 在当前VC 下的对象权限收回。方式如下:
revoke all on *.* from user;
revoke all on db.* from user;
revoke all on db.table from user;

指定虚拟集群名,即把USER 在指定VC 下的对象权限收回。方式如下:
revoke all on vc.*.* from user;
revoke all on vc.db.* from user;
revoke all on vc.db.table from user;