针对游标记录做相邻值分组,返回原游标
语法:
cs.group(x,…)
备注:
针对游标记录cs按照x分组,x只和相邻的对比,相当于归并,要求cs有序,返回由序列构成的原游标,支持多路游标。
选项:
@i |
x是bool表达式,如果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) |
相邻记录中GENDER与DEPT字段值皆相同时,记录分到同一组中,结果返回原游标 |
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() |
仅排序,不分组 |
相关概念: