sql >> Databáze >  >> RDS >> Mysql

dotaz mysql pro spojení 3 dotazů v 1 tabulce při zprůměrování

Hour() zdá se, že by to byla užitečná funkce, protože se díváte pouze na jeden den. Možná by pro vás fungovalo něco takového:

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;

Vzhledem k tomu, že používá vnitřní spojení, vycházím z předpokladu, že v každé tabulce bude vždy alespoň jeden záznam za hodinu, ale zdá se to jako rozumný předpoklad.




  1. Oracle Join Condition with Top 1

  2. Zkrátit Mysql Table Cron Job?

  3. Proč MySql automaticky neoptimalizuje dotaz BETWEEN?

  4. Netriviální sloučení dvou tabulek