Jawaban Baru
Pada awalnya, saya tidak mengerti Anda mencoba melakukan total lari. Begini tampilannya:
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;
Jawaban Asli
Anda bisa mendapatkan duplikat karena bergabung. Mungkin e1 memiliki lebih dari satu kecocokan untuk beberapa baris yang menggembungkan jumlah Anda. Entah itu atau perbandingan dalam bergabung Anda juga membandingkan detik, yang bukan yang Anda harapkan.
Bagaimanapun, alih-alih memotong bidang datetime menjadi hari dan bulan, hapus saja waktunya. Inilah cara Anda melakukannya.
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);