cs.group()

描述:

游标中附加相邻值分组动作后返回原游标。

语法:

cs.group(x,…)

备注:

游标cs附加计算,cs按照x分组,x只和相邻的记录对比,相当于归并,要求cs有序,返回原游标cs支持多路游标

该函数属于延迟计算函数。

选项:

@i

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

@1

取每组的第一条记录组成排列返回到原游标(注意是数字1,不是字母l)。

@v

cs是纯序表游标时,每组子集将复制成新的纯序表。

参数:

cs

游标/多路游标。

x

分组表达式。

返回值:

游标

示例:

 

A

 

1

=demo.cursor("select * from EMPLOYEE").sortx(GENDER,DEPT)

返回游标,游标中的数据对GENDERDEPT有序。

2

=A1.group(GENDER,DEPT)

游标A1附加计算,相邻记录中GENDERDEPT字段值都相同时,记录分到同一组中,返回A1游标。

3

=A1.fetch()

读取游标A1执行A2计算后的数据(数据量较大时建议分批读取):

  使用@i选项: 

 

A

 

1

=demo.cursor("select * from STOCKRECORDS where STOCKID='000062' ").sortx(DATE)

返回游标,游标中的数据对DATE有序。

2

=A1.group@i(CLOSING<CLOSING[-1])

游标A1附加计算,使用@i选项,当记录中的CLOSING值小于上一条记录中的CLOSING值时,开始新的一组,返回A1游标。

3

=A1.fetch()

读取游标A1执行A2计算后的数据:

使用@1选项: 

 

A

 

1

=demo.cursor("select EID,NAME,DEPT,HIREDATE from EMPLOYEE").sortx(DEPT,HIREDATE)

返回游标,游标中的数据对DEPTHIREDATE有序。

2

=A1.group@1 (DEPT)

游标A1附加计算,使用@1选项,游标记录根据DEPT分组,取每组的第一条记录返回A1游标。

3

=A1.fetch()

读取游标A1执行A2计算后的数据:

cs为纯序表游标:

 

A

 

1

=demo.cursor@v("select * from EMPLOYEE order by GENDER,DEPT ")

返回纯序表游标。

2

=A1.group@v(GENDER,DEPT)

游标A1附加计算,使用@v选项,每组子集将复制成新的纯序表,返回原游标。

3

=A1.()

获取A1游标执行A2计算后的分组数。

 

相关概念:

A.group(xi,…)

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