3.26 序列的聚合运算:并集和差集
对序列构成的序列聚合计算并列或差列。
根据选课表和课程表,查询课程表中哪些课无人选上。
Course:
| ID | NAME | TEACHERID |
|---|---|---|
| 1 | Environmental protection and … | 5 |
| 2 | Mental health of College Students | 1 |
| 3 | Computer language Matlab | 8 |
| 4 | Electromechanical basic practice | 7 |
| 5 | Introduction to modern life science | 3 |
| 6 | Modern wireless communication system | 14 |
| … | … | … |
SelectCourse:
| ID | STUDENTID | COURSE |
|---|---|---|
| 1 | 59 | 2,7 |
| 2 | 43 | 1,8 |
| 3 | 52 | 2,7,10 |
| 4 | 44 | 1,10 |
| 5 | 37 | 5,6 |
| 6 | 57 | 3 |
| … | … | … |
脚本:
| A | |
|---|---|
| 1 | =connect(“db”) |
| 2 | =A1.query(“select * from Course”) |
| 3 | =A1.query@x(“select * from SelectCourse”) |
| 4 | =A3.union(COURSE.split@cp()) |
| 5 | =A2.(ID) |
| 6 | =A2(A5.pos([A5,A4].diff())) |
A1 连接数据库
A2 读取课程表
A3 读取学生选课表
A4 将选课表中的课程按逗号拆分后,使用 union() 函数将课程序列求交列
A5 所有课程的序号
A6 使用 diff() 函数求课程表和选课表的课程 ID 的差列,即没有学生选择的课程,在 A5 中定位后,从 A2 中选出。
运行结果:
| ID | NAME | TEACHERID |
|---|---|---|
| 1 | Fundamentals of economic management | 21 |
