2013-04-23 45 views
0

首先,我還沒有開始編碼這個查詢,只是因爲我不知道如何處理它。情景是這樣的。在table_name中,我需要查詢column_a,選擇最佳總和爲確定值的行(所有列)。我的這個例子的值可能是150. column_a中的結果可能是(3,25,67,19,9,11)等。我需要五行時加在一起將最接近150.在這種情況下,查詢會給我行(67,25,19,11,9)。Mysql選擇5行,其中一個組合列的總和最好匹配一個確定的值

SELECT * FROM 5 rows -> WHERE SUM(column_a) closest matches 150 

這個例子是接近我在找什麼,除了我需要的總數和行結果。 Sum top 5 values in MySQL

我希望我已經解釋得很好。我有一種感覺,這將是一個簡單的問題,我只是簡單地思考。

感謝

+1

http://xkcd.com/287/ – 2013-04-23 19:23:48

+0

給一些數據和希望的結果 – 2013-04-23 19:29:11

回答

0

與一列VAL

select * from t as t1, t as t2, t as t3, t as t4, t as t5 
order by abs(t1.val + t2.val + t3.val + t4.val + t5.val - 150) 
limit 1 

注意,這將是一個緩慢的查詢表t。

+0

我認爲這可能會做到,我會在我回家時檢查它。就速度而言,我當然希望它速度快,但是,在同一張紙上,無論如何,最多不超過200行。謝謝 – defiantwp 2013-04-24 00:14:03

+0

我做了一些修改以滿足我的需要,但是,這個指出我的方向正確。 – defiantwp 2013-04-24 23:59:39

相關問題