Description:
Group records in a channel.
Syntax:
ch.groups(x:F,…;y:G…;n)
Note:
The function groups records in channel ch according to grouping expression x, by which the records are ordered, to get a channel having F,...G,… fields.
Sort records in the new channel by x. Values of G field are the results of computing expression y over each group. It aims to fetch the grouping result set from the channel.
Option:
@n |
With the option the value of expression x is a group number, which points to the desired group |
@u |
Won’t sort the resulting set by expression x; the option and @n are mutually exclusive |
Parameter:
ch |
Channel |
x |
Grouping expression, by which an aggregation over the whole grouped set is performed if x:F is omitted. In that case the semicolon “;” should not be omitted |
F |
Field names of the resulting table sequence |
y |
An aggregate function on channel ch, which only supports sum/count/max/min/top/avg/iterate/concat/var; the parameter Gi should be given up if function iterate(x,a;Gi,…) is used |
G |
The aggregate fields in the resulting table sequence |
Return value:
Channel
Example:
|
A |
|
1 |
=demo.cursor("select * from EMPLOYEE ") |
|
2 |
=channel() |
Create a channel. |
3 |
=channel() |
Create a channel. |
4 |
=channel() |
Create a channel. |
5 |
=channel() |
Create a channel. |
6 |
=A1.push(A2,A3,A4,A5) |
Be ready to push the data in A1’s cursor into channel A2, A3 and A5, but the action needs to wait. |
7 |
=A2.groups(;sum(SALARY):TotalSalary) |
As x:F is omitted, calculate the sum of salaries of all employees. |
8 |
=A3.groups(DEPT:dept;sum(SALARY):TotalSalary) |
Group and sort records by DEPT field. |
9 |
=A4.groups@n(if(GENDER=="F",1,2):SubGroups;sum(SALARY):TotalSalary) |
The value of x is group number; put records where GENDER is “F” into the first group and others into the second group, and then aggregate each group. |
10 |
=A5.groups@u(STATE:State;count(STATE):count) |
Won’t sort the resulting set by grouping field |
11 |
A1.select(month(BIRTHDAY)==2) |
|
12 |
A11.fetch() |
Attach a fetch operation to A11’s cursor. |
13 |
=A2.result() |
|
14 |
=A3.result() |
|
15 |
=A4.result() |
|
16 |
=A5.result() |
|