Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 计算最大组合为“x”的数字列表的最大值_Mysql_Sql_Math - Fatal编程技术网

Mysql 计算最大组合为“x”的数字列表的最大值

Mysql 计算最大组合为“x”的数字列表的最大值,mysql,sql,math,Mysql,Sql,Math,好的,我不确定我是否能正确地解释这一点。 假设我有一个包含三列id、price和maxcombo的表 也许这张表中有5行随机数字表示价格。2.id只是增量唯一密钥 maxcombo指定该价格是否可以是任意数字的组合。 如果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+

好的,我不确定我是否能正确地解释这一点。 假设我有一个包含三列id、price和maxcombo的表

也许这张表中有5行随机数字表示价格。2.id只是增量唯一密钥 maxcombo指定该价格是否可以是任意数字的组合。 如果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等

这有意义吗

我的意思是,我可以计算所有的diff组合,看看哪个组合的值最大,但我可以想象,如果表大于5行,这将需要很长时间

我想知道是否有数学天才或超级开发人员有一些建议或创造性的方法来更有效地解决这个问题


提前谢谢

我构建此解决方案是为了实现所需的查询。然而,它还没有经过效率方面的测试

以第1-3列为例:

SELECT max(a+b+c) FROM sample_table WHERE a < 3;

这肯定会在较大的表中花费太长的时间,而不仅仅是5行。

我已经形成了一个SQL语句,可以解决这个问题。然而,您打算如何将X输入到它中呢?我正在考虑一个存储过程的输入参数。但如果可能的话,我希望看到您在没有X输入的情况下提出的SQL语句。谢谢你的帮助。非常感谢!然而,在做了这个之后,我注意到你写了一篇文章,我可以计算出这个组合,看看哪个组合的值最大,但是你没有发布任何关于如何做的SQL代码片段。那么,没有保证我的方法会更好,但现在。。。
SELECT a FROM sum_combo WHERE a+b+c=(
    SELECT max(a+b+c) FROM sum_combo WHERE a > 3
);