Die Kombination von SUM und AVG mit GROUP BY in MySQL
Ich bin mir nicht sicher, ob dies ist möglich, in einer einzigen Abfrage, aber ich versuche zu erreichen, die folgenden mit MySQL und habe noch keine Lösung gefunden.
Ich habe eine Tabelle, die aufgebaut ist, ein wenig wie diese:
ID LOG_VALUE LOG_TIME
1 5000 19:05:42
2 6205 19:05:45
3 1000 19:05:40
1 5000 19:05:52
2 6403 19:05:55
3 1500 19:05:50
1 5000 19:06:02
2 6403 19:06:05
3 1500 19:06:00
Zeilen eingefügt werden in dieser log-Tabelle in regelmäßigen Abständen, d.h. alle 10 Sekunden. Ich möchte Abfrage, die Datensätze zu berechnen, die eine Durchschnittliche log_value für jede minute.
Das problem das ich habe ist, dass ich nicht sicher bin, wie berechnet sich eine Durchschnittliche pro-ID für jede minute, zusammen mit der Summe der Durchschnittswerte für jede minute, nur das eine oder andere.
In grundlegende Begriffe, die ich bin zu wollen, um dies zu erreichen-Prozess:
- Finden der Durchschnitt aller Protokolle für die ID 1, die in 19:05
- Finden der Durchschnitt aller Protokolle für die ID-2 in 19:05
- Finden der Durchschnitt aller Protokolle für ID 3 in 19:05
- Hinzufügen der Mittelwerte zusammen, um insgesamt für 19:05
- Tun das gleiche für 19:06
SQL unter nicht tun, was ich will, aber ich habe es zu unterstützen und zu helfen das problem.
SELECT ROUND(AVG(log_value)) AS average_value, EXTRACT(HOUR_MINUTE FROM log_time)
FROM (`logs`)
GROUP BY MINUTE(log_time), id
ORDER BY log_time DESC
Vielen Dank für jede Hilfe können Sie zur Verfügung stellen.
InformationsquelleAutor MSR | 2009-09-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie folgenden
So sind Sie darauf hindeutet, tun es außerhalb der SQL-Anweisung kombinieren Sie die Durchschnitte?
Wenn Sie gehen, um die Liste in einer anderen Liste gibt es keine Notwendigkeit, Sie zu schreiben in der gleichen Abfrage nach allen Allgemeinen Durchschnitt nicht über id-Feld überhaupt. Allerdings, wenn Sie möchten, dass alle in einer Abfrage können Sie die Abfrage gegeben durch najmeddine.
InformationsquelleAutor Cem Kalyoncu
die erste Abfrage berechnen Sie die Durchschnittliche eindeutige Id, HOUR_MINUTE.
die zweite Abfrage berechnen Sie die Durchschnittliche deutliche HOUR_MINUTE = Summe der einzelnen Id-Durchschnitt, HOUR_MINUTE
(id = null zu tun, die UNION).
InformationsquelleAutor manji