这是一个查询,将产生以上结果:
SELECt * FROM `users` uWHERe (select sum(size) from `users` where size <= u.size order by size) < 150ORDER BY userid
但是,您描述的想要选择最适合给定大小的用户的问题是装箱问题。这是一个NP-
Hard问题,用ANSI
SQL很难解决。但是,以上内容似乎返回了正确的结果,但实际上,它只是从最小的项目开始,然后继续添加项目,直到垃圾箱已满。
通用,更有效的装箱算法将是从最大的物品开始,并在适合时继续添加较小的物品。该算法将选择用户5和4。



