cs.groupx()

阅读(339) 标签: 集群游标, 记录, 分组,

描述:

针对集群游标中的记录分组并返回同分布的集群游标

语法:

   cs1.groupx(x:F,…;y:G…;cs2,n)

备注:

针对集群游标cs1,按照x分组后,形成以F,...G,…为字段的集群游标,并按分组字段x排序,F字段值为每一组第一条记录的x字段值,G字段值为对每一组进行y操作后的结果。ycs1的聚合函数。分组后的集群游标的分布和cs2的分布相同。

选项:

@n

x取值为分组序号,可直接定位

参数:

cs1

集群游标

x

分组表达式

F

结果字段名

y

聚合函数,仅支持sum/count/max/min/top/avg/iterate,使用iterate(x,a;Gi,…)时不能有参数Gi

G

汇总字段名

cs2

集群文件/集群表/集群游标,无此参数不再分布

n

缓冲区行数

返回值:

集群游标

示例:

 

A

 

1

[192.168.31.72:8281, 192.168.31.72:8291]

打开分布集群文件

2

=file@z("salespart.ctx", A1)

 

3

=A2.create()

 

4

=A3.cursor()

返回集群游标,用来定义分布

5

=file@0z("orderpart.ctx", A1)

打开分布集群文件

6

=A5.create()

 

7

=A6.cursor()

返回集群游标

8

=A7.groupx(EID:ID;count(~):IdCount; A4)

EIDA7进行分组计数并返回和A4同分布的集群游标

9

=A8.fetch()

 

10

=A7.groupx@n(if(EID==4,1,2):ID;count(~):IdCount; A4)

x取值为分组序号,EID等于4的分到第一组,否则分到第二组,并且每个组计数

11

=A10.fetch()