2016-02-28 54 views
0

分組我與它有下列的表mytable的MySQL服務器:平均對列由另一列

nid   int(10) unsigned 
temperature float  unsigned 
timestamp  int(10) unsigned 

此表有大約300.000記錄,並保持每天都在增長。爲了處理這些數據量,我想找到一些SQL查詢,可以提供基於時間間隔的平均值,例如「小時平均值」,「日平均值」等。

任何想法?

+2

'組by'和日期/時間函數浮現在腦海中。 –

+0

另外,看看分區。 – Strawberry

回答

0

我終於得到了答案。我爲了得到平均每天我可以使用:

SELECT DATE(FROM_UNIXTIME(timestamp)) AS Date, 
     AVG(temperature) AS AvgTemp 
FROM `myTable` 
GROUP BY DATE(FROM_UNIXTIME(timestamp)) 

爲了得到平均每小時(每天),我使用:

SELECT DATE(FROM_UNIXTIME(timestamp)) AS Date, 
     HOUR(FROM_UNIXTIME(timestamp)) AS Hour, 
     AVG(temperature) as AvgTemp 
FROM `myTable` 
GROUP BY DATE(FROM_UNIXTIME(timestamp)), 
      HOUR(FROM_UNIXTIME(timestamp))