В общем случае условие в предложении WHERE
запроса SQL может ссылаться только на одну строку.Контекст предложения WHERE
оценивается до того, как какой-либо порядок был определен предложением ORDER BY
, и не существует неявного порядка для таблицы RDBMS.
Вы можете использовать производную таблицу для объединения каждой строкив группу строк с меньшим значением id
и выведите сумму каждой группы сумм.Затем проверьте, соответствует ли сумма вашему критерию.
CREATE TABLE MyTable ( id INT PRIMARY KEY, cash INT );
INSERT INTO MyTable (id, cash) VALUES
(1, 200), (2, 301), (3, 101), (4, 700);
SELECT s.*
FROM (
SELECT t.id, SUM(prev.cash) AS cash_sum
FROM MyTable t JOIN MyTable prev ON (t.id > prev.id)
GROUP BY t.id) AS s
WHERE s.cash_sum >= 500
ORDER BY s.id
LIMIT 1;
Вывод:
+----+----------+
| id | cash_sum |
+----+----------+
| 3 | 501 |
+----+----------+