12.5 非外键匹配性检测的提速

 

在两个表中,根据非外键的匹配性检测查找记录,优化提速。
根据销售表和客户表,查询 2014 年各城市有销售记录的客户数量。

Sales
ID
CustomerID
Date
Amount
Customer
ID
Name
City

当数据按去重字段有序时,可以使用 groups 函数的 @o 选项提速。

脚本:

A
1 =connect(“db”)
2 =A1.query(“select * from Customer”)
3 =A1.query@x(“select * from Sales where year(Date)=2014 order by CustomerID”)
4 =A3.groups@o(CustomerID)
5 =A2.join@i(ID, A4:CustomerID)
6 =A5.groups(City; count(1):CustomerCount)

A1 连接数据库
A2 查询客户表
A3 查询 2014 年的销售记录,并按客户 ID 排序
A4 使用 groups 函数按客户 ID 去重,有序时使用 @o 选项
A5 使用 A.join@i() 函数连接过滤
A6 分组汇总每个城市的客户数量

运行结果:

City CustomerCount
Dongying 6
Tangshan 7