我们测试了一个非常有趣的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,保存该查询的结果,然后(b)在SQL中运行这些保存结果的工作查询?
或者可能有一种完全不同的方法,它有很好的表现?
非常感谢任何帮助!