描述:
针对管道中的记录分组。
语法:
ch.groups(x:F,…;y:G…;n)
备注:
针对管道ch中的记录按照x分组并排序,形成以F,...G,…为字段的管道。
新管道按分组表达式x排序,G字段值为对每一组执行聚合函数y后的结果。该函数为结果集函数。
选项:
@n |
x取值为分组序号,可直接定位。 |
@u |
结果集不再按x排序;与@n互斥。 |
参数:
ch |
管道。 |
x |
分组表达式,x:F省略表示针对全集聚合,此时“;”不可省略。 |
F |
结果序表的字段名。 |
y |
ch的聚合函数,仅支持sum/count/max/min/top /avg/iterate/concat/var,使用iterate(x,a;Gi,…)时不能有参数Gi。 |
G |
结果序表中的汇总字段名。 |
返回值:
管道
示例:
|
A |
|
1 |
=demo.cursor("select * from EMPLOYEE ") |
|
2 |
=channel() |
创建管道。 |
3 |
=channel() |
创建管道。 |
4 |
=channel() |
创建管道。 |
5 |
=channel() |
创建管道。 |
6 |
=A1.push(A2,A3,A4,A5) |
将游标A1中的数据推送到管道A2、A3、A4和A5,此时数据不会立即被推送到管道。 |
7 |
=A2.groups(;sum(SALARY):TotalSalary) |
省略x:F求所有员工的总工资。 |
8 |
=A3.groups(DEPT:dept;sum(SALARY):TotalSalary) |
指定字段DEPT分组,并按照指定字段排序。 |
9 |
=A4.groups@n(if(GENDER=="F",1,2):SubGroups;sum(SALARY):TotalSalary) |
x取值为分组序号,GENDER等于“F”的分到第一组,否则分到第二组,并且每个组聚合。 |
10 |
=A5.groups@u(STATE:State;count(STATE):count) |
结果集不按分组字段排序。 |
11 |
= A1.select(month(BIRTHDAY)==2) |
|
12 |
=A11.fetch() |
游标A11添加了计算。 |
13 |
=A2.result() |
|
14 |
=A3.result() |
|
15 |
=A4.result() |
|
16 |
=A5.result() |
|