Desværre giver MySQL ikke analytiske funktioner, som Oracle og SQL Server gør.
En måde at få en "running total" er at gøre brug af en brugervariabel, noget som denne:
SELECT t.Date
, t.NewUsers
, @rt := @rt + t.NewUsers AS `Running Total`
FROM (SELECT @rt := 0) i
JOIN (
SELECT DATE_FORMAT(created,'%Y%m%d') AS `Date`
, COUNT(item_id) as `NewUsers`
FROM AP_user
WHERE YEAR(created) > 2011
AND user_groups = '63655'
AND user_active = 1
AND userID NOT IN $excludedUsers
GROUP BY DATE_FORMAT(created,'%Y-%m')
ORDER BY DATE_FORMAT(created,'%Y-%m') ASC
) t
BEMÆRK:Opførslen af hukommelsesvariabler som brugt ovenfor er ikke garanteret i denne sammenhæng. Men hvis vi er forsigtige med forespørgslen, kan vi få forudsigelige, gentagelige resultater i SELECT-sætninger. Hukommelsesvariablernes adfærd kan ændre sig i en fremtidig udgivelse, hvilket gør denne tilgang ubrugelig.
BEMÆRK:Jeg har stort set pakket din forespørgsel i parentes og givet den et alias som en inline-visning (det MySQL kalder en "afledt tabel"). Jeg har lavet et par ændringer i din forespørgsel, din GROUP BY har potentiale til at gruppere januar 2012 sammen med januar fra 2013, det ændrede jeg. Jeg tilføjede også en ORDER BY-klausul.