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 |
… | … |