我想按总和限制 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/