7.23 小数据表与大维表的快速关联查询
数据量不大的表生成游标后,与有序集文件快速关联查询。
根据相互关联的销售表和客户表,查询 2014 年销售总额前 3 名的客户名称。
使用 cs.joinx() 函数与可分段集文件进行连接,当数据量不大时可以使用 @q 选项提速。
脚本:
A | |
---|---|
1 | =file(“Sales.btx”).cursor@b().select(year(Date)==2014) |
2 | =file(“Customer.btx”) |
3 | =A1.groups(CustomerID;sum(Amount):Amount) |
4 | =A3.top(-3;Amount) |
5 | =A4.joinx@q(CustomerID,A2:ID,Name:CustomerName).fetch() |
A1 从集文件创建游标,选出 2014 年的销售记录
A2 创建客户表集文件对象,该文件对于客户 ID 有序
A3 分组汇总客户的销售额
A4 选出销售额前三名
A5 使用 cs.joinx 函数按客户 ID 连接销售表和客户表,数据量不大时使用了 @q 选项提速。
运行结果:
CustomerID | Amount | CustomerName |
---|---|---|
71 | 130672.64 | SAVEA |
63 | 64238.0 | QUICK |
20 | 53467.38 | ERNSH |