1.12 前 N 名 / 后 N 名:取对应记录
取出指定字段前 N 名 / 后 N 名的记录。根据成绩表,求各班各科前两名的学生 ID。
CLASS | STUDENTID | SUBJECT | SCORE |
---|---|---|---|
Class one | 1 | English | 84 |
Class one | 1 | Math | 77 |
Class one | 1 | PE | 69 |
Class one | 2 | English | 81 |
Class one | 2 | Math | 80 |
… | … | … | … |
脚本:
A | |
---|---|
1 | =connect(“db”) |
2 | =A1.query@x(“select * from Scores”) |
3 | =A2.group(CLASS,SUBJECT;~.top(-2; SCORE):TOP2) |
4 | =A3. conj(TOP2) |
A1 连接数据库
A2 查询学生成绩
A3 按班级和学科分组并取出每组分数前两名。注意:这里用分号分隔,表示返回最大的两个值所在的记录。
A4 将所有班级各科的前两名记录合并到一个序列
运行结果:
CLASS | STUDENTID | SUBJECT | SCORE | |
---|---|---|---|---|
Class one | 4 | English | 96 | |
Class one | 9 | English | 93 | |
Class one | 13 | Math | 97 | |
Class one | 10 | Math | 97 | |
… | … | … | … |