Bijgewerkt antwoord
Het OP vroeg om een single-query-aanpak, zodat een gebruikersvariabele niet apart hoeft te worden SET van het gebruik van de variabele om het lopende totaal te berekenen:
SELECT d.date,
@running_sum:[email protected]_sum + d.count AS running
FROM ( SELECT date, COUNT(*) AS `count`
FROM table1
WHERE date > '2011-09-29' AND applicationid = '123'
GROUP BY date
ORDER BY date ) d
JOIN (SELECT @running_sum := 0 AS dummy) dummy;
"Inline initialisatie" van gebruikersvariabelen is ook handig voor het simuleren van andere analytische functies. Ik heb deze techniek inderdaad geleerd van antwoorden zoals deze .
Oorspronkelijk antwoord
U moet een insluitende query invoeren om de @running_sum
over uw COUNT(*)ed records:
SET @running_sum=0;
SELECT d.date,
@running_sum:[email protected]_sum + d.count AS running
FROM ( SELECT date, COUNT(*) AS `count`
FROM table1
WHERE date > '2011-09-29' AND applicationid = '123'
GROUP BY date
ORDER BY date ) d;
Zie ook dit antwoord .