Нов отговор
Отначало не разбрах, че се опитваш да направиш общ сбор. Ето как би изглеждало това:
SET @runningTotal = 0;
SELECT
e_date,
num_interactions,
@runningTotal := @runningTotal + totals.num_interactions AS runningTotal
FROM
(SELECT
DATE(eDate) AS e_date,
COUNT(*) AS num_interactions
FROM example AS e
GROUP BY DATE(e.Date)) totals
ORDER BY e_date;
Оригинален отговор
Може да получавате дубликати поради присъединяването си. Може би e1 има повече от едно съвпадение за някои редове, което увеличава броя ви. Или това, или сравнението във вашето присъединяване също сравнява секундите, което не е това, което очаквате.
Както и да е, вместо да нарязвате полето за дата и час на дни и месеци, просто отделете времето от него. Ето как да направите това.
SELECT
DATE(e.Date) AS e_date,
count(e.ID) AS num_interactions
FROM example AS e
JOIN example e1 ON DATE(e1.Date) <= DATE(e.Date)
GROUP BY DATE(e.Date);