MySQL kumulative Summe nach Datum gruppiert

7

Ich weiß, dass es ein paar diesbezügliche Posts gab, aber mein Fall ist ein bisschen anders und ich wollte Hilfe dazu bekommen.

Ich muss einige Daten aus der Datenbank abrufen, die eine kumulative Anzahl von Interaktionen pro Tag darstellen. momentan ist das was ich habe

%Vor%

Die Ausgabe von diesem ist nahe, was ich will, aber nicht genau das, was ich brauche. das Problem, das ich habe, ist, dass die Daten mit der Stunde Minute gespeichert werden und Sekunde, dass die Interaktion passierte, so gruppiert die Gruppe durch Tage nicht zusammen.

So sieht die Ausgabe aus. Ссылка auf 12-23 gibt es 5 Interaktionen, aber es ist nicht gruppiert, weil der Zeitstempel anders ist. also muss ich einen Weg finden, den Zeitstempel zu ignorieren und nur auf den Tag zu schauen.

Wenn ich GROUP BY DAY(e.Date) versuche, werden die Daten nur am Tag gruppiert (dh alles, was am 1. eines Monats passiert ist, wird in eine Zeile gruppiert) und die Ausgabe ist nicht das, was ich will Ссылка

GROUP BY DAY(e.Date), MONTH(e.Date) teilt es nach Monat und dem Tag des Monats auf, aber die Zählung ist wieder aus.

Ich bin überhaupt kein MySQL-Experte, deshalb bin ich verwirrt darüber, was ich vermisse

    
John Ruddell 09.03.2014, 00:12
quelle

2 Antworten

9

Ich habe herausgefunden, was ich letzte Nacht tun musste ... aber da ich neu bin, konnte ich es damals nicht posten ... was ich getan habe, war Folgendes:

%Vor%

Wäre das weniger effizient als Ihre Abfrage? Ich kann nur die Berechnung in Python nach dem Herausziehen der Zählung pro Tag tun, wenn es effizienter ist, weil dies in der Größenordnung von Tausenden bis Hunderttausenden von Zeilen zurückgegeben wird.

    
John Ruddell 10.03.2014, 01:51
quelle
11

Neue Antwort

Zuerst habe ich nicht verstanden, dass du versucht hast, eine laufende Summe zu machen. So würde das aussehen:

%Vor%

Ursprüngliche Antwort

Sie könnten aufgrund Ihres Beitritts doppelte Einträge erhalten. Vielleicht hat e1 mehr als eine Übereinstimmung für einige Zeilen, die deine Zählung aufblähen. Entweder das oder der Vergleich in Ihrem Join vergleicht auch die Sekunden, was nicht Ihren Erwartungen entspricht.

Wie auch immer, anstatt das datetime-Feld in Tage und Monate zu zerlegen, entfernen Sie einfach die Zeit davon. Hier ist, wie Sie das tun.

%Vor%     
clhereistian 09.03.2014 00:23
quelle