Актуализиран отговор
OP поиска подход с една заявка, за да не се налага да ЗАДАВАТЕ потребителска променлива отделно от използването на променливата за изчисляване на текущата обща сума:
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;
„Вградената инициализация“ на потребителските променливи е полезна и за симулиране на други аналитични функции. Наистина научих тази техника от отговори като този .
Оригинален отговор
Трябва да въведете обхващаща заявка, за да таблицирате @running_sum
над вашите COUNT(*)издадени записи:
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;
Вижте също този отговор .