Aktualizovaná odpověď
Operační program požadoval přístup s jedním dotazem, aby nebylo nutné SET uživatelskou proměnnou odděleně od použití proměnné k výpočtu průběžného součtu:
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 inicializace" uživatelských proměnných je užitečná i pro simulaci dalších analytických funkcí. Tuto techniku jsem se skutečně naučil z odpovědí jako je tato .
Původní odpověď
Je třeba zavést přiložený dotaz k tabelování @running_sum
přes vaše COUNT(*)ed záznamy:
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;
Viz také tuto odpověď .