Neue Antwort
Zuerst habe ich nicht verstanden, dass Sie versucht haben, eine laufende Summe zu erstellen. So würde das aussehen:
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;
Originalantwort
Aufgrund Ihres Beitritts könnten Sie Duplikate erhalten. Vielleicht hat e1 mehr als eine Übereinstimmung für einige Zeilen, was Ihre Zählung aufbläst. Entweder das oder der Vergleich in Ihrem Join vergleicht auch die Sekunden, was nicht das ist, was Sie erwarten.
Wie auch immer, anstatt das datetime-Feld in Tage und Monate zu zerlegen, entfernen Sie einfach die Zeit daraus. So gehen Sie vor.
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);