我们测试了一个非常有趣的 SQL 查询。不幸的是,事实证明这个查询运行有点慢 - O(n2) - 我们正在寻找一个优化的解决方案,或者可能也是一个完全不同的解决方案?
目标:
We would like to get for:
- some customers ("record_customer_id"), e.g. ID 5
- the latest 2 "record_init_proc_id"
- for every "record_inventory_id"
http://www.sqlfiddle.com/#!9/07e5d/4
该查询工作正常并显示正确的结果,但至少使用两次全表扫描,这在有太多行要扫描时当然很糟糕。
是否可以(a)首先选择特定日期范围内的所有record_customer_id(s),保存该查询的结果,然后(b)在SQL fiddle中运行工作查询来处理这些保存的结果?
或者是否有一种完全不同的方法可以实现出色的性能?
任何帮助是极大的赞赏!