12.4 非外键的匹配性检测
在两个表中,根据非外键的匹配性检测查找记录。
根据成绩表和学生表,查询各班所有某科成绩超过 80 分的学生数量。
| Score |
|---|
| StudentID |
| Subject |
| Score |
| Student |
|---|
| ID |
| Class |
| Name |
子查询过滤后按关联字段去重,然后就变成类似于主键的情况了。
脚本:
| A | |
|---|---|
| 1 | =connect(“db”) |
| 2 | =A1.query(“select * from Student”) |
| 3 | =A1.query@x(“select * from Score”) |
| 4 | =A3.select(Score>80) |
| 5 | =A4.id(StudentID) |
| 6 | =A2.join@i(ID, A5) |
| 7 | =A6.groups(Class; count(1):StudentCount) |
A1 连接数据库
A2 查询学生表
A3 查询学生成绩表
A4 选出有成绩超过 80 分的记录
A5 使用 id 函数按学生 ID 去重
A6 使用 A.join@i() 函数连接过滤
A7 分组汇总每个班级的学生数量
运行结果:
| Class | StudentCount |
|---|---|
| Class 1 | 9 |
| Class 2 | 11 |
| … | … |
