Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kumulative MySQL-Summe gruppiert nach Datum

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);