12.7 一个自连接简化示例

 

在一个表中,通过复杂的自连接判断查找数据。
在订单表中,查询同一订单跨度超过一年的订单的销售额。

ID NUMBER AMOUNT DELIVERDATE ARRIVALDATE
10814 1 408.0 2014/01/05 2014/04/18
10814 2 204.0 2014/02/21 2014/04/05
10814 3 102.0 2014/03/14 2014/04/06
10814 4 102.0 2014/04/09 2014/04/27
10814 5 102.0 2014/05/04 2014/07/04
10848 1 873.0 2014/01/06 2014/04/21

脚本:

A
1 =connect(“db”)
2 =A1.query@x(“select * from Detail”)
3 =A2.group(ID)
4 =A3.select(interval(~.min(DELIVERDATE), ~.max(ARRIVALDATE)) > 365)
5 =A4.new(ID, ~.sum(AMOUNT):Amount)

A1 连接数据库
A2 查询订单明细表
A3 按订单 ID 分组
A4 选出同一订单的时间间隔超过 365 天的记录
A5 创建序表,统计每个订单的销售额

运行结果:

ID Amount
10998 6800.0
11013 4560.0
11032 20615.0