Câu trả lời mới
Lúc đầu, tôi không hiểu bạn đang cố gắng chạy tổng. Đây là cách nó sẽ trông như thế nào:
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;
Câu trả lời ban đầu
Bạn có thể nhận được các bản sao vì sự tham gia của bạn. Có thể e1 có nhiều hơn một kết quả phù hợp cho một số hàng làm tăng số lượng của bạn. Điều đó hoặc so sánh trong kết hợp của bạn cũng là so sánh từng giây, không phải là điều bạn mong đợi.
Nhưng dù sao, thay vì cắt trường datetime thành ngày và tháng, chỉ cần tách thời gian khỏi nó. Đây là cách bạn làm điều đó.
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);