3.18 同序集合按原序归并计算合集
在结构相同的两个表中,根据多个字段将其中的记录有序归并。
数学和英语成绩分别存储在两个文件中,统计每位学生的总分。
数学:
| CLASS | STUDENTID | SUBJECT | SCORE |
|---|---|---|---|
| 1 | 1 | Math | 77 |
| 1 | 2 | Math | 80 |
| … | … | … | … |
英语:
| CLASS | STUDENTID | SUBJECT | SCORE |
|---|---|---|---|
| 1 | 1 | English | 84 |
| 1 | 2 | English | 81 |
| … | … | … | … |
脚本:
| A | |
|---|---|
| 1 | =T(“Math.xlsx”) |
| 2 | =T(“English.xlsx”) |
| 3 | =A1.sort(CLASS,STUDENTID) |
| 4 | =A2.sort(CLASS,STUDENTID) |
| 5 | =[A3,A4].merge(CLASS,STUDENTID) |
| 6 | =A5.groups@o(CLASS,STUDENTID; ~.sum(SCORE):TOTALSCORE) |
A1 读取数学成绩表
A2 读取英语成绩表
A3 数学成绩表按班级和学生排序
A4 英语成绩表按班级和学生排序
A5 使用 merge 函数,按班级和学生字段有序归并
A6 使用 groups 函数的 @o 选项,相邻值变化时重新分组。并统计每个学生的总分。
运行结果:
| CLASS | STUDENTID | TOTALSCORE |
|---|---|---|
| 1 | 1 | 161 |
| 1 | 2 | 161 |
| 1 | 3 | 159 |
| … | … | … |
