cs.group()

描述:

针对游标记录做相邻值分组,返回原游标

语法:

cs.group(x,…)

备注:

针对游标记录cs按照x分组,x只和相邻的对比,相当于归并,要求cs有序,返回由序列构成的原游标,支持多路游标

选项:

@i

xbool表达式,如果x的结果为true则开始新的一组。此时只有一个x

@1

取每一个分组的第一条记录组成排列后返回(注意是数字1,不是字母l

@q(x:F,…;x’:F’,…;…)

cs已对x,…有序,仅后面的字段需要排序时可用该选项,可以内存排序。

@s

仅排序,不分组,必须要与@q配合使用

参数:

cs

游标记录

x

分组表达式,多个字段/表达式组合分组时,每个分组表达式用逗号隔开

返回值:

原游标cs

示例:

 

A

 

1

=demo.cursor("select * from EMPLOYEE")

 

2

=A1.group(GENDER,DEPT)

相邻记录中GENDERDEPT字段值皆相同时,记录分到同一组中,结果返回游标

3

=demo.cursor("select * from EMPLOYEE")

 

4

=A3.group@i(GENDER=="F").fetch()

遇到GENDER=="F"则开始新的分组

5

=demo.cursor("select * from EMPLOYEE order by GENDER  ")

 

6

=A5.group@1(GENDER).fetch()

返回每组第一条记录

7

=demo.cursor("select * from EMPLOYEE order by DEPT ")

查询EMPLOYEE表中的数据,根据DEPT排序,结果返回游标

8

=A7.group@q(DEPT;GENDER)

A7中返回的游标已经对DEPT排序,所以分组时仅对GENDER进行组排序

9

=A7.group@qs(DEPT:DEPT;GENDER:GENDER).fetch()

仅排序,不分组

相关概念:

A.group(xi,…)

A.group(x:F,…;y:G,…)