2013-04-23 48 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

相关问题