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.

Dies ist eine einfache Abfrage, ich wünschte, ich hatte MySQL testen hier ganz schnell, es sollte etwas sein wie: select id, Stunde+':'+minute, avg(log_value) aus Protokollen group by id, Stunde+':'+minute

InformationsquelleAutor MSR | 2009-09-15

Schreibe einen Kommentar