如何將以下行分成3組,其中「美元」的總和爲10.所有行必須使用且不得超過一次。謎題:如何按特定列的特定總和對行進行分組
row|dollars
1|1
2|1
3|1
4|1
5|1
6|1
7|3
8|4
9|7
10|10
一(許多可能的)期望的結果會是...
Row Group 1 = 10
Row Group 2 = 7,9
Row Group 3 = 1,2,3,4,5,6,8
附加題: 時,它不是數學上可能各組得到的確切$ 10的總和,是有公式讓我們最接近那?
我雖然也許「有總和(元)= 10」,對於密切的解決方案,只是排序和分配一個行一組,但是這並沒有讓我接近。
Group Row By Sum of Specific Column equal to Specific Value對此有點觸動,但是,假設它們可能是數百萬行,則會出現性能問題。 我很難過。
如果有幫助,我使用php和mysql。一個純SQL解決方案將是理想的,但一些組合也會很好。感謝您的任何建議。
編輯:如果我不清楚,我想返回使這成爲可能的行,而不僅僅是「分組」。
它不一樣下跌有一個多項式算法對他(或甚至找到一個子集,它增加了一個特定的值) –