返回首页

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

更新日期:2024年09月11日

获取一行数据
使用游标的fetchone 方法获取结果集中的一行数据。
fetchone 接口可以循
环调用,直到结果集中的数据获取完毕。
from GBaseConnector import connect, GBaseError
if __name__ == '__main__':

GBase Python 接口开发手册


- 8 -

南大通用数据技术股份有限公司
config = {'host':'172.16.0.131',
'user':'root',
'passwd':'111111',
'port':5258,
'db':'test'}
try:
conn = connect()
conn.connect(**config)
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS test")
cur.execute("CREATE TABLE IF NOT EXISTS test(id INT, name VARCHAR(50))")
cur.execute("INSERT INTO test VALUES(1,'hello'), (2,'world')")
cur.execute("SELECT * FROM test")
row = cur.fetchone()
while row is not None:
print row
row = cur.fetchone()
cur.execute("DROP TABLE IF EXISTS test")
except GBaseError.DatabaseError, err:
print err
finally:
conn.close()

Server Administrator (ISA) 使用 ondblog 实用程序修改数据库日志记录方式。如果您打开
记录,请执行 0 级备份。有关更多信息,请参阅 ISA 联机帮助和使用 ondblog 修改数
据库日志记录方式。

语法
AVG([DISTINCT/ALL] expr)OVER([PARTITION BY …] [ORDER BY … [ASC/DESC] ]
功能描述

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 584
计算组内表达式的移动平均值。
示例
示例1:AVG(k) OVER(PARTITION BY i ORDER BY j DESC)
gbase> DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected, 1 warning

gbase> CREATE TABLE t1(i int, j int,k int);
Query OK, 0 rows affected

gbase> INSERT INTO t1 VALUES(2,1,4),(2,3,6),(2,3,4),(2,5,8),(3,2,2),(3,2,4),(3,2,2),(3,4,6),(3,1,
2),(3,5,8);
Query OK, 10 rows affected
Records: 10 Duplicates: 0 Warnings: 0

gbase> SELECT *,AVG(k) OVER(PARTITION BY i ORDER BY j DESC) AS avg FROM t
1;
+------+------+------+--------+
| i | j | k | avg |
+------+------+------+--------+
| 2 | 5 | 8 | 8.0000 |
| 2 | 3 | 4 | 6.0000 |
| 2 | 3 | 6 | 6.0000 |
| 2 | 1 | 4 | 5.5000 |
| 3 | 5 | 8 | 8.0000 |
| 3 | 4 | 6 | 7.0000 |
| 3 | 2 | 2 | 4.4000 |
| 3 | 2 | 4 | 4.4000 |
| 3 | 2 | 2 | 4.4000 |
| 3 | 1 | 2 | 4.0000 |
+------+------+------+--------+
10 rows in set
用例分析:首先会根据i 分组,在同组内,根据j 降序排列,从每组的第一个值开
始向后累加k 值,同时记录count(k)的值,相同的j 值,对应的累加和、count 值相
同,都是计算到最后一个j 值对应的k 值,如果遇到不同组,从0 开始重新累加,
最后用累加和除以count 值则是最后的avg 值。
注意
NULL 值的处理方式同聚合函数avg 类似,如果全为NULL 值,则结果为NULL,否
则NULL 不进行累加,也不计算在count 内。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 585
以i 值为2、2、2、2,j 值为5、3、3、1,k 值为8、4、6、4,sum 值为8、6、6、