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

mysql-Abfrage zum Verbinden von 3 Abfragen in 1 Tabelle während der Mittelwertbildung

Stunde() Scheint, dass es dafür eine nützliche Funktion wäre, da Sie nur einen einzigen Tag betrachten. Vielleicht würde so etwas für Sie funktionieren:

SELECT * FROM
 (SELECT HOUR(time) hour, avg(ph) AS avg_ph
  FROM ph 
  WHERE time >= NOW() - INTERVAL 1 DAY
  GROUP BY hour) p
JOIN 
 (SELECT HOUR(time) hour, avg(temperature) AS avg_temp
  FROM temperature1 
  WHERE time >= NOW() - INTERVAL 1 DAY
  GROUP BY hour) t ON t.hour = p.hour
JOIN 
 (SELECT HOUR(time) hour, avg(solids) AS avg_solids
  FROM solids 
  WHERE time >= NOW() - INTERVAL 1 DAY
  GROUP BY hour) s ON s.hour = p.hour;

Da es innere Verknüpfungen verwendet, gehe ich davon aus, dass es immer mindestens einen Datensatz in jeder Tabelle für die Stunde geben wird, aber es scheint eine vernünftige Annahme zu sein.