Vous ne pouvez utiliser des agrégats à des fins de comparaison que dans la clause HAVING :
GROUP BY ...
HAVING SUM(cash) > 500
Le HAVING
La clause nécessite que vous définissiez une clause GROUP BY.
Pour obtenir la première ligne où la somme de toutes les espèces précédentes est supérieure à une certaine valeur, utilisez :
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
Étant donné que la fonction d'agrégation se produit dans une sous-requête, l'alias de colonne correspondant peut être référencé dans la clause WHERE.