7.23 小数据表与大维表的快速关联查询

 

数据量不大的表生成游标后,与有序集文件快速关联查询。
根据相互关联的销售表和客户表,查询 2014 年销售总额前 3 名的客户名称。

imagepng

使用 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