返回首页

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

更新日期:2024年09月11日

监控系统无法推送trap 信息
如果客户使用snmp 信息推送功能需要正确配置采集中心的
snmp_udp_config.properties 文件,见附录D 说明。
isOpen=1
outputEncoding=GBK
trapIp=192.168.5.8
trapPort=5001
retries=2
timeout=1500
如果没有收到推送信息,且日志文件中没有推送日志:
Send snmp trap successfully. info
请检查采集中心所在机器的host 文件配置,
host 文件的本机ip 地址行是否有
配置当前主机名(应该要配上)。

RANK OVER 函数
语法
RANK() OVER([PARTITION BY col_name1,col_name2,…]
ORDER BY
col_name1 [ASC/DESC], col_name2 [ASC/DESC],…)
功能描述
根据ORDER BY 子句中表达式的值,从查询返回的每一行计算它们与其它行的
相对位置。组内的数据按ORDER BY 子句排序,然后给每一行赋一个号,从而
形成一个序列,该序列从1 开始,往后累加。
每次ORDER BY 表达式的值发生变化时,该序列也随之增加。有同样值的行得
到同样的数字序号(认为null 是相等的)。
如果两行得到同样的排序,则后面的序数将跳跃。例如,两行序数为1,则没有
序数2,序列将给组中的下一行分配值3。
仅Express 引擎支持。
在查询语句中,可以使用RANK 函数的子句为:

在SELECT 列表中:
SELECT RANK() OVER(PARTITION BY i ORDER BY j) FROM t1 WHERE ...;

在最终ORDER BY 子句中(通过在查询中的其它位置使用RANK 函数的别
名或位置引用):
SELECT *,RANK() OVER (ORDER BY j) FROM t1 WHERE ... ORDER BY
RANK() OVER(ORDER BY i DESC);

在上述两个子句中,作为表达式或标量函数的参数:
SELECT RANK() OVER (ORDER BY j DESC) + i FROM t1 WHERE ...;
SELECT
CONV(RANK()
OVER(PARTITION
BY
i
ORDER
BY
j
ASC),10,2)FROM t
使用约束
下述情况不能使用:

在WHERE 子句的搜索条件中:
SELECT ... FROM t1 WHERE RANK() OVER(ORDER BY i) > 3; -- error

作为聚集函数的参数:
SELECT SUM(RANK() OVER(ORDER BY dollars)) FROM t1; -- error

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

RANK 函数不得在HAVING 子句中使用:
SELECT * FROM t1 GROUP BY i HAVING RANK() OVER(ORDER BY j) <
10; -- error

RANK 函数不得在GROUP BY LIST 中:
SELECT * FROM t1 GROUP BY RANK() OVER(ORDER BY i); -- error

RANK 不能嵌套在其它RANK 内部:
SELECT RANK() OVER(ORDER BY RANK() OVER(ORDER BY i )); -- error

RANK 函数不得在DELETE 和UPDATE 语句的非查询部分:
UPDATE t1 SET i = RANK () OVER(ORDER BY j) WHERE ...; --error

但是用在查询部分可以:
UPDATE t1 SET i = i + 1 where j IN (SELECT RANK () OVER(ORDER BY
t2.k) from t2);
-- ok
注意
PARTITION BY 后面不能接ASC/DESC,ORDER BY 后面可以接
ASC/DESC。
示例
示例1:RANK() OVER(PARTITION BY i ORDER BY j desc)
gbase> DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected
gbase> CREATE TABLE t1(i int, j int);
Query OK, 0 rows affected
gbase> INSERT INTO t1 VALUES(2,1),(2,3),(2,3),(2,5),(3,2),(3,2),(3,2),(3,4),
(3,1),(3,5);
Query OK, 10 rows affected
Records: 10
Duplicates: 0
Warnings: 0
gbase> SELECT *,RANK() OVER(PARTITION BY i ORDER BY j des
c) AS rank FROM t1;
+------+------+------+
| i
| j
| rank |
+------+------+------+
|
2 |
5 |
1 |

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
887
|
2 |
3 |
2 |
|
2 |
3 |
2 |
|
2 |
1 |
4 |
|
3 |
5 |
1 |
|
3 |
4 |
2 |
|
3 |
2 |
3 |
|
3 |
2 |
3 |
|
3 |
2 |
3 |
|
3 |
1 |
6 |
+------+------+------+
10 rows in set

VisualStudio 插件正常安装后不能使用 ........................................ 117
13
GBase ADO.NET 的客户端类介绍
.............................
119