描述:
排列按照指定条件生成多条记录,合并组成新序表返回到原管道中。
ch.news(X;xi:Fi,…)
备注:
管道ch附加计算,排列X计算xi后生成多条记录形成新序表返回到原管道中。xi作为新字段Fi的值。
参数:
ch |
管道。 |
X |
排列。 |
xi |
表达式,结果为字段值,xi中的~针对X而非ch。用#时表示用序号定位。 |
Fi |
ch的字段名,省略则自动识别。 |
选项:
@1 |
左连接,当排列X为空时,则创建一条空记录。 |
管道
示例:
|
A |
|
1 |
=demo.cursor("select EID,NAME,DEPT,GENDER,BIRTHDAY,SALARY from EMPLOYEE") |
返回游标。 |
2 |
=demo.query("select EID,NAME,DEPT,GENDER,BIRTHDAY,SALARY from EMPLOYEE") |
返回序表: |
3 |
=A2.group(GENDER;~:gup) |
根据GENDER字段对A2序表分组,返回结果如下: |
4 |
=A1.groupx(GENDER;avg(SALARY):avg) |
根据GENEDER字段对A1分组,汇总每组的SALARY平均值,返回游标,数据内容如下: |
5 |
=A4.join(GENDER,A3:GENDER,gup) |
A4游标附加计算,与A3外键式连接,返回A4游标,A4执行A5计算后数据内容如下: |
6 |
=channel(A5) |
创建管道并将游标A5中的数据推送至管道,此时数据不会立即被推送到管道。 |
7 |
=A6.news(gup;EID,#2:Lname,GENDER,age(~.BIRTHDAY):Age,SALARY+50: Salary,avg:AvgSalary) |
管道A6附加计算,计算gup的字段值,#2:Lname表示将gup中的第2个字段重命名为Lname,将 EID, Lname,GENDER, Age, Salary, AvgSalary字段组成的序表返回到原管道A6。 |
8 |
=A6.fetch() |
管道A6执行结果集函数,保留管道当前数据。 |
9 |
=A5.fetch() |
A5游标执行取数动作,此时数据才会被推送到管道,然后管道执行计算并记录结果。 |
10 |
=A6.result() |
获取管道计算结果: |
使用@1选项:
|
A |
|
1 |
=demo.cursor("select EID,NAME,DEPT,GENDER,BIRTHDAY,SALARY from EMPLOYEE") |
返回游标。 |
2 |
=demo.query("select EID,NAME,DEPT,GENDER,BIRTHDAY,SALARY from EMPLOYEE where GENDER='M' ") |
返回序表: |
3 |
=A2.group(GENDER;~:gup) |
根据GENDER字段对A2序表分组,返回结果如下: |
4 |
=A1.groupx(GENDER;avg(SALARY):avg) |
根据GENEDER字段对A1分组,汇总每组的SALARY平均值,返回游标,数据内容如下: |
5 |
=A4.join(GENDER,A3:GENDER,gup) |
A4游标附加计算,与A3外键式连接,返回A4游标,A4执行A5计算后数据内容如下: |
6 |
=channel(A5) |
创建管道并将游标A5中的数据推送至管道,此时数据不会立即被推送到管道。 |
7 |
=A6.news@1(gup;EID,NAME,GENDER,age(~.BIRTHDAY):Age,Salary,avg:AvgSalary) |
管道A6附加计算,计算gup的字段值,#2:Lname表示将gup中的第2个字段重命名为Lname,将 EID, Lname,GENDER, Age, Salary, AvgSalary字段组成的序表返回到原管道A6。 使用@1选项,左连接,当排列X为空时,则创建一条空记录。 |
8 |
=A6.fetch() |
管道A6执行结果集函数,保留管道当前数据。 |
9 |
=A5.fetch() |
A5游标执行取数动作,此时数据才会被推送到管道,然后管道执行计算并记录结果。 |
10 |
=A6.result() |
获取管道计算结果: |