दुर्भाग्य से, MySQL विश्लेषणात्मक कार्य प्रदान नहीं करता है, जैसे Oracle और SQL सर्वर करते हैं।
"रनिंग टोटल" प्राप्त करने का एक तरीका उपयोगकर्ता चर का उपयोग करना है, कुछ इस तरह:
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 खंड भी जोड़ा है।