如果x为3,我需要找到总和1-3列的最大值的组合。
所以说桌子有:
1 - 100 - 1
2 - 50 - 3
3 - 10 - 3
4 - 15 - 3
5 - 20 - 2
正确答案只是行id 1。
单独100(并且只能基于maxcombo数单独) 大于50 + 20 + 15或20 + 15或10 + 20等。
这有意义吗?
我的意思是我可以只计算所有的差异组合并查看哪个具有最大值,但我想如果表格大于5行则需要很长时间。
想知道任何数学天才或超级开发者都有一些建议或创造性的方式来更有效地解决这个问题。
提前致谢!
答案 0 :(得分:0)
我构建了此解决方案以实现所需的查询。但是,它还没有在效率方面进行过测试。
以colums 1-3为例:
SELECT max(a+b+c) FROM sample_table WHERE a < 3;
看着:
正确答案将是行ID 1
...我认为也许我误解了你的问题,你希望查询只获得rowid。所以,我做了另一个:
SELECT a FROM sum_combo WHERE a+b+c=(
SELECT max(a+b+c) FROM sum_combo WHERE a > 3
);
在大型表格中确实需要花费的时间太长而不仅仅是5行。