この問題をTSQLの観点から見ていますが、アドバイスをいただければ幸いです。
シナリオ
選択する倉庫内のアイテムを識別する2セットの基準があります。
クエリ1は100アイテムを返します
クエリ2は100アイテムを返します
クエリ1で返された100個のアイテムから
25個を選択する必要があります。クエリ2で返された100個のアイテムから25個を選択する必要があり
ます。-クエリ1/2のアイテムは同じではありません。
各アイテムは、倉庫のセグメントに保管されます。
倉庫のセグメントには、多数のアイテムが含まれている場合があります。
アイテムを選択するためにアクセスする必要のあるセグメントの数を減らす方法で、50個のアイテム(各クエリから25個)を選択したいと思います。
推奨されるアプローチ
私の最初のアイデアは、2つの結果セットを組み合わせて、次のリストを作成することでした。
セグメントID、NumberOfItemsRequiredInSegment
次に、各クエリから25個のアイテムを選択し、NumberOfItemsRequiredInSegmentが最も多いセグメント内のアイテムを優先します。
これは最適ではないことはわかっていますが、ヒューリスティックを実装するのは簡単です。
質問
1)これは標準的な組み合わせの問題だと思いますが、私はそれを認識していません..おそらく複数のナップザック、誰かがそれを認識していますか?
2)理想的にはTSQLに、より優れた(実装しやすい)ヒューリスティックまたはソリューションがありますか?
どうもありがとう。