解決したい問題は、サブセット和 と呼ばれます。 問題。残念ながら、これはNP-complete です。 。
つまり、SQLを使用する場合でも、他の言語を使用して解決する場合でも、問題の非常に小さなインスタンス、つまりテーブルにエントリが少ないインスタンスしか解決できません。そうしないと、テーブルの行数に応じて指数関数的に増加するため、ランタイムが過剰になります。この理由は、考えられるすべての組み合わせを試すよりも、解決策を見つけるためのより良い方法が本質的にないためです。
近似解が受け入れられる場合は、ウィキペディアのページで説明されている多項式時間アルゴリズムがあります。