2016-04-06 71 views
2

我有一張表,其中包含每分鐘相同時間間隔的多個數據。我想彙總最近10分鐘內每5分鐘的數據。我已經嘗試了所有在堆棧溢出中提供的解決方案,但沒有爲我準確獲取數據,因爲他們都沒有嘗試在固定的時間間隔內獲取數據。如何獲得Mysql中最近10分鐘內每5分鐘的聚合數據?

我使用此查詢:

SELECT ROUND(unix_timestamp(footable.createdTime)/(60 * 5)) AS timekey, avg(mainData) as aggData 
FROM footable 
WHERE footable.createdTime > date_sub(now(), INTERVAL 10 MINUTE) 
GROUP BY timekey 

它應該返回最多2個記錄每次但大多數時候它返回3條記錄。

注意: - 表中包含每分鐘確認的數據,這是10分鐘的測試條件,可能是最近一小時的數據。它不是一個重複的問題仔細閱讀說明。

任何幫助將不勝感激.. !!

回答

3

我想通了自己和下面是解決這一問題的查詢:

SET @timeStmp := UNIX_TIMESTAMP(date_sub(now(), INTERVAL 10 MINUTES)); 
SELECT @timeStmp := IF(((unix_timestamp(footable.createdTime) - @timeStmp) >= 295), unix_timestamp(footable.createdTime),@timeStmp) as timekey, avg(mainData) as aggData 
FROM footable 
WHERE footable.createdTime > date_sub(now(), INTERVAL 10 MINUTE) 
GROUP BY timekey 

這個查詢將給出確切分鐘,在每次執行分鐘間隔彙總數據。請享用..!!