非常に興味深い 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
クエリは正常に動作し、正しい結果が表示されますが、スキャンする行が多すぎる場合はもちろん、少なくとも 2 つのフル テーブル スキャンが使用されます。
(a) 最初に特定の日付範囲内のすべての record_customer_id を選択し、そのクエリの結果を保存してから、(b) これらの保存された結果に対して SQL フィドルで作業クエリを実行することは可能ですか?
それとも、優れたパフォーマンスを発揮するまったく異なるアプローチがあるのでしょうか?
どんな助けでも大歓迎です!