SQL Query查找总权重

时间:2012-07-27 09:59:58

标签: sql algorithm

我在表格中有30条记录,其中包含“框号”和“重量”列。 我必须在30个盒子中找到20个盒子,其重量总和最接近1000千克。

2 个答案:

答案 0 :(得分:5)

我建议你阅读Knapsack problem

答案 1 :(得分:2)

SQL Server:

select TOP 20 box_number 
from t_boxes 
group by box_number 
order by ABS(SUM(box_weight) - 1000) ASC

编辑: 如果我误解了你的问题,你真的想解决背包问题。 这是您在SQL中应该做的事情,但是您可以阅读this文章的名称非常合适:现在完全不恰当地使用SQL Server