За съжаление MySQL не предоставя аналитични функции, като Oracle и SQL Server.
Един от начините да получите "текуща сума" е да използвате потребителска променлива, нещо като това:
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
ЗАБЕЛЕЖКА:Поведението на променливите на паметта, както е използвано по-горе, не е гарантирано в този контекст. Но ако сме внимателни със заявката, можем да получим предвидими, повторяеми резултати в операторите SELECT. Поведението на променливите на паметта може да се промени в бъдеща версия, което прави този подход неработоспособен.
ЗАБЕЛЕЖКА:Основно увих вашата заявка в скоби и й дадох псевдоним като вграден изглед (това, което MySQL нарича "извлечена таблица"). Направих няколко промени във вашата заявка, вашата GROUP BY има потенциал да групира януари 2012 г. заедно с януари от 2013 г., промених това. Добавих и клауза ORDER BY.