Du kan kun bruge aggregater til sammenligning i HAVING-sætningen:
GROUP BY ...
HAVING SUM(cash) > 500
HAVING
klausul kræver, at du definerer en GROUP BY-klausul.
For at få den første række, hvor summen af alle de tidligere kontanter er større end en bestemt værdi, skal du bruge:
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
Fordi den aggregerede funktion forekommer i en underforespørgsel, kan der refereres til kolonnealiaset for den i WHERE-udtrykket.