ch.news()

阅读(482) 标签: 字段值, 合并, 原管道,

描述:

排列按照指定条件生成多条记录,合并组成新序表返回到原管道中。

语法:

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的字段值,#2Lname表示将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的字段值,#2Lname表示将gup中的第2个字段重命名为Lname,将 EID, Lname,GENDER, Age, Salary, AvgSalary字段组成的序表返回到原管道A6

使用@1选项,左连接,当排列X为空时,则创建一条空记录。

8

=A6.fetch()

管道A6执行结果集函数,保留管道当前数据。

9

=A5.fetch()

A5游标执行取数动作,此时数据才会被推送到管道,然后管道执行计算并记录结果。

10

=A6.result()

获取管道计算结果: