本章介绍attach()函数的多种用法。
描述:
从集群组表中取出集群附表
语法:
T.attach(T’)
备注:
从集群组表T上取出集群附表T’,附表T’必须在集群组表T中已存在。
参数:
T |
集群组表 |
T’ |
附表名称 |
返回值:
集群附表对象
示例:
在组表emp1.ctx上增加附表:
|
A |
|
1 |
=file("D:\\emp1.ctx") |
|
2 |
=A1.create(#EID,NAME) |
创建组表基表 |
3 |
=demo.cursor("select EID,NAME from employee ") |
|
4 |
=A2.append(A3) |
为基表中添加记录 |
5 |
=A2.attach(t1, SURNAME,DEPT ) |
在基表上添加附表t1 |
6 |
=demo.cursor("select EID,SURNAME,DEPT from employee") |
|
7 |
=A5.append(A6) |
为附表t1添加记录 |
8 |
=A2.attach(t2,GENDER,SALARY) |
在基表上添加附表t2 |
9 |
=demo.cursor("select EID,GENDER,SALARY from employee ") |
|
10 |
=A8.append(A9) |
为附表t2添加记录 |
将组表emp1.ctx放到分机192.168.0.116:8281下:
|
A |
|
1 |
=file("emp1.ctx",["192.168.0.116:8281"]) |
打开集群文件 |
2 |
=A1.open() |
返回集群组表 |
3 |
=A2.attach(t1) |
取出集群附表t1 |
描述:
在组表基表上增加附表
语法:
T.attach(T’,C…)
备注:
在组表基表T上增加附表T’。组表中可以有一个或多个附表。附表T’的维包括前基表维,且附表的列名不能与基表重复。
参数C省略时表示返回实表T的附表,可对附表做更新修改。
附表记录的主键对应的基表记录主键不存在时将无法读出,但是在对附表做追加或更新时不检查与基表主键是否对应。
参数:
T |
基表 |
T’ |
附表名称 |
C |
附表的列名,可省略,省略时返回名为T’的附表。C前带#表示维。 |
返回值:
附表对象
示例:
在基表上增加附表:
|
A |
|
1 |
=file("D:/ctb.ctx") |
|
2 |
=A1.create(#k1,v1) |
创建组表基表,其中k1作为维,v1为基表的列 |
3 |
=A2.attach(table2,#k2,v2) |
在A2返回的基表上增加名为table2的附表,附表的维是k1和k2,列为v2 |
4 |
=create(k1,v1).record([1,10,2,20,3,30,4,40,10,100]) |
创建序表 |
5 |
=create(k1,k2,v2).record([1,1,"a",3,1,"c"]) |
创建序表 |
6 |
=A2.append(A4.cursor()) |
在基表中添加游标记录 |
7 |
=A3.append(A5.cursor()) |
在附表table2中添加游标记录 |
8 |
>A2.close() |
关闭组表 |
打开附表:
|
A |
|
1 |
=file("D:/ctb.ctx").open() |
|
2 |
=A1.attach(table2) |
打开实表中名为table2的附表 |
3 |
=A2.cursor().fetch() |
查看附表中的数据 |
更新附表:
|
A |
|
1 |
=file("D:/ctb.ctx").open() |
|
2 |
=A1.attach(table2) |
打开实表中名为table2的附表 |
3 |
=create(k1,k2,v2).record([4,2,"d"]) |
|
4 |
=A2.update(A3) |
将A3序表中的数据更新到附表table2中 |
5 |
=A2.cursor().fetch() |
查看更新后附表中的数据 |
描述:
计算序列成员平均值
语法:
A.avg(x) |
|
avg(x1,…,xn) |
相当于A.avg(),其中x1,…,xn为A的成员 |
备注:
对序列A计算表达式x后返回非空成员的平均值。成员为非数值时忽略。当非空数值型成员数为0时,平均值为null
A |
序列 |
x |
表达式,A为排列/序表时不可省略 |
返回值:
数值
示例:
A为序列
|
A |
|
1 |
=[1,3,5,6].avg() |
3.75 |
2 |
=[2,null,4,3].avg() |
3.0 |
3 |
=[null,,"" ,"abc"].avg() |
Null |
4 |
=[2,4,3,"aaa"].avg() |
3.0 ,忽略非数值成员 |
5 |
=[1,2,3,4].avg(~*~) |
7.5,计算表达式后再算平均值 |
6 |
=avg(1,3,5,6) |
3.75,同A1 |
A为序表/排列
|
A |
|
1 |
=demo.query("select * from EMPLOYEE") |
|
2 |
=A1.avg(SALARY) |
统计非空SALARY平均值 |
3 |
=A1.(SALARY+100).avg() |
统计SALARY增加100后的平均值 |