Sie können Aggregate nur in der HAVING-Klausel zum Vergleich verwenden:
GROUP BY ...
HAVING SUM(cash) > 500
Das HAVING
-Klausel erfordert, dass Sie eine GROUP BY-Klausel definieren.
Um die erste Zeile zu erhalten, in der die Summe aller vorherigen Barmittel größer als ein bestimmter Wert ist, verwenden Sie:
SELECT y.id, y.cash
FROM (SELECT t.id,
t.cash,
(SELECT SUM(x.cash)
FROM TABLE x
WHERE x.id <= t.id) AS running_total
FROM TABLE t
ORDER BY t.id) y
WHERE y.running_total > 500
ORDER BY y.id
LIMIT 1
Da die Aggregatfunktion in einer Unterabfrage vorkommt, kann der Spaltenalias dafür in der WHERE-Klausel referenziert werden.