Puoi utilizzare gli aggregati solo per il confronto nella clausola HAVING:
GROUP BY ...
HAVING SUM(cash) > 500
Il HAVING
La clausola richiede di definire una clausola GROUP BY.
Per ottenere la prima riga in cui la somma di tutti i contanti precedenti è maggiore di un certo valore, utilizzare:
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
Poiché la funzione di aggregazione si verifica in una sottoquery, è possibile fare riferimento all'alias di colonna nella clausola WHERE.