sql >> Database >  >> RDS >> Mysql

mysql-query om 3 query's in 1 tabel samen te voegen tijdens het middelen

Uur() lijkt me een handige functie hiervoor, aangezien je maar naar één dag kijkt. Misschien zou iets als dit voor u werken:

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;

Omdat het inner joins gebruikt, ga ik ervan uit dat er altijd ten minste één record in elke tabel voor het uur zal zijn, maar het lijkt een redelijke veronderstelling.




  1. Meerdere zoekopdrachten VS Opgeslagen Procedure

  2. Kan mysql-workbench niet openen

  3. Optimalisatiedrempels - Gegevens groeperen en aggregeren, deel 4

  4. Hoe sys.dm_exec_describe_first_result_set werkt in SQL Server