返回首页

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

更新日期:2024年09月11日

ROW_NUMBER OVER 函数
语法
ROW_NUMBER( ) OVER([PARTITION BY col_name1,col_name2,…] ORDER
BY
col_name1 [asc/desc], col_name2 [asc/desc],…)
功能描述
同rank 的区别就是相同的排序值序号也会依次递增。
例如,两行排序值相同,则序数为1,2。
使用说明和使用约束同RANK() OVER() 。
示例
示例1:ROW_NUMBER() 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 desc) A

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
889
S rank,DENSE_RANK() OVER(PARTITION BY i order by j desc) AS d
ense_rank ,ROW_NUMBER() OVER(PARTITION BY i order by j desc)
AS row_number FROM t1;
+------+------+------+------------+------------+
| i
| j
| rank | dense_rank | row_number |
+------+------+------+------------+------------+
|
2 |
5 |
1 |
1 |
1 |
|
2 |
3 |
2 |
2 |
2 |
|
2 |
3 |
2 |
2 |
3 |
|
2 |
1 |
4 |
3 |
4 |
|
3 |
5 |
1 |
1 |
1 |
|
3 |
4 |
2 |
2 |
2 |
|
3 |
2 |
3 |
3 |
3 |
|
3 |
2 |
3 |
3 |
4 |
|
3 |
2 |
3 |
3 |
5 |
|
3 |
1 |
6 |
4 |
6 |
+------+------+------+------------+------------+
10 rows in set

cstore_prefetch_quantity
参数说明:描述列存储使用ADIO 预取IO 量的大小。
该参数属于USERSET 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:整型,1024~1048576,单位为KB。
默认值:32MB

GBase UP 支持用户变量。用户变量的生命周期是会话级的,对其它会话不可见。
当用户退出时,此用户的所有用户变量会自动释放。
用户变量的写法是:@var_name。一个变量名可以由a~z、A~Z、0~9、下划线组
成,必须以字母或下划线开头。
用户变量名大小写不敏感。
通过SET 语法来定义并为变量赋值。
SET @var_name = expr [, @var_name = expr] ...

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 338
“=”是赋值操作符。赋给每一个变量的expr 值可以是整数、实数、字符串、或
NULL。
通过SELECT 语法查看用户变量的值。
SELECT @var_name [, @var_name] ...

示例1:使用SET 语句为变量赋值。
gbase> SET @t1='abc',@t2=null,@t3=4;
Query OK, 0 rows affected

gbase> SELECT @t1,@t2,@t3;
+------+------+------+
| @t1 | @t2 | @t3 |
+------+------+------+
| abc | NULL | 4 |
+------+------+------+
1 row in set
用户变量可以用于表达式所允许的任何地方。注意,必须明确指定常量的上下文中
不能使用变量,例如,在SELECT 的LIMIT 子句中。
如果用户使用的变量没有初始化,那么它的值就为NULL。