MySQL 按总和限制

标签 mysql select limit

我想按总和限制 mySQL 中的 SELECT 结果。 例如,这是我的表:

(id, val)

数据条目: (1,100), (2,300), (3,50), (4,3000)

我想选择 k 个条目,以便这些条目中val 的总和足以使其达到 M。 例如,我想查找 M = 425 的条目。 结果应为 (1,100),(2,300),(3,50)。

如何在 mysql 选择查询中做到这一点?

最佳答案

尝试这个变体 -

SET @sum = 0;
SELECT id, val FROM (
  SELECT *, @sum:=@sum + val mysum FROM mytable2 ORDER BY id
) t
WHERE mysum <= 450;

+------+------+
| id   | val  |
+------+------+
|    1 |  100 |
|    2 |  300 |
|    3 |   50 |
+------+------+

关于MySQL 按总和限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7976959/

相关文章:

MySql - 不支持 BLOB/TEXT 列

mysql - 在 MySQL 的 2 种不同情况下绑定(bind) 3 个表

php - 使用php和mysql从数据库中的所有表中获取数据

mysql,根据不同列的最大值选择没有重复的计数

ruby-on-rails - rails 模型查询返回 11 条记录但未设置限制

mysql - 每个类别的php-sql限制查询

mysql - Node.js Promise 概念在 if else 条件下的 then block

HTML Select + 限制可见选项的数量

javascript - Angular ui-select 占位符不起作用

mysql - 限价和单价 - 分组