游标中附加相邻值分组动作后返回原游标。
语法:
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) |
返回游标,游标中的数据对GENDER、DEPT有序。 |
2 |
=A1.group(GENDER,DEPT) |
游标A1附加计算,相邻记录中GENDER与DEPT字段值都相同时,记录分到同一组中,返回原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执行A2计算后的数据: |
使用@1选项:
|
A |
|
1 |
=demo.cursor("select EID,NAME,DEPT,HIREDATE from EMPLOYEE").sortx(DEPT,HIREDATE) |
返回游标,游标中的数据对DEPT、HIREDATE有序。 |
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计算后的分组数。 |
相关概念: