Ich habe eine Tabelle namens Sitzungen mit zwei datetime Spalten: Start und Ende.MySQL: Durchschnitt der Zeit Unterschiede erhalten?
Für jeden Tag (JJJJ-MM-TT) kann es viele verschiedene Start- und Endzeiten geben (HH: ii: ss). Ich muss einen täglichen Durchschnitt aller Unterschiede zwischen diesen Start- und Endzeiten finden.
Ein Beispiel für ein paar Zeilen wären:
start: 2010-04-10 12:30:00 end: 2010-04-10 12:30:50
start: 2010-04-10 13:20:00 end: 2010-04-10 13:21:00
start: 2010-04-10 14:10:00 end: 2010-04-10 14:15:00
start: 2010-04-10 15:45:00 end: 2010-04-10 15:45:05
start: 2010-05-10 09:12:00 end: 2010-05-10 09:13:12
...
Die Zeitdifferenzen (in Sekunden) für 2010-04-10 wären:
50
60
300
5
Der Durchschnitt für 2010-04- 10 wäre 103,75 Sekunden. Ich möchte meine Frage etwas wie zurückzukehren:
day: 2010-04-10 ave: 103.75
day: 2010-05-10 ave: 72
...
Ich kann die Zeitdifferenz von Startdatum gruppiert bekommen, aber ich bin nicht sicher, wie der Durchschnitt zu erhalten. Ich habe versucht, mit der AVG-Funktion, aber ich denke, es funktioniert nur direkt auf Spaltenwerte (und nicht das Ergebnis einer anderen Aggregatfunktion).
Das ist, was ich habe:
SELECT
TIME_TO_SEC(TIMEDIFF(end,start)) AS timediff
FROM
Sessions
GROUP BY
DATE(start)
Gibt es eine Möglichkeit, die durchschnittlich TIMEDIFF für jedes Datum Gruppe beginnen zu bekommen? Ich bin neu, Funktionen zu aggregieren, vielleicht verstehe ich etwas falsch. Wenn Sie eine alternative Lösung kennen, teilen Sie diese bitte mit.
Ich könnte es immer ad hoc machen und den Durchschnitt manuell in PHP berechnen, aber ich frage mich, ob es eine Möglichkeit gibt, es in MySQL zu tun, so dass ich vermeiden kann, eine Reihe von Schleifen zu laufen.
Danke.
Ja, das ist es, ich habe es erkannt, sobald ich die Frage gepostet habe. Ich fühle mich irgendwie albern. Der Grund, warum ich es nicht zum Laufen brachte, war, dass ich AVG (Timediff) machte, und ich denke, dass Sie den Ausdruck direkt übergeben müssen und keinen Alias verwenden können. Vielen Dank. – nebs