簡體   English   中英

MySQL組數據按小時獲取平均值

[英]MySQL group data by hour to get average

....  
09.05.11 12:10 |    14,5  
09.05.11 12:00 |    19,5  
09.05.11 11:50 |    13,9  
09.05.11 11:40 |    15,4  
09.05.11 11:30 |    15,6  
09.05.11 11:20 |    14,3  
09.05.11 11:10 |    16,7  
09.05.11 11:00 |    19,3  
09.05.11 10:50 |    12,6  
09.05.11 10:40 |    10,8  
09.05.11 10:30 |    10,5  
09.05.11 10:20 |    15,6  
09.05.11 10:10 |    14,9  
09.05.11 09:00 |    10,1  
09.05.11 09:50 |    10,7  
....  

我每小時需要AVG數據。

恩。 從( 09.05.11 10.1009.05.11 11.00 )計算出09.05.11 11.00平均數據。

12.0011.10 - 12.00 ,等等...

我怎樣才能做到這一點?

嘗試

SELECT AVG( visit ) , HOUR( `time_column` ) 
FROM time_table
WHERE DATE_SUB(  `time_column` , INTERVAL 1 HOUR ) 
GROUP BY HOUR( `time_column` ) 

工作實例

CREATE TABLE IF NOT EXISTS `time_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `waqt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `visit` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Dumping data for table `time_table`
--

INSERT INTO `time_table` (`id`, `waqt`, `visit`) VALUES
(1, '2011-07-28 13:29:04', 3),
(2, '2011-07-28 15:29:10', 4),
(3, '2011-07-28 13:45:35', 7),
(4, '2011-07-28 15:00:47', 5),
(5, '2011-07-28 14:45:03', 6),
(6, '2011-07-28 13:00:21', 3);

然后我每小時執行一次訪問

  SELECT AVG(visit), HOUR(waqt) 
  FROM time_table    
  WHERE DATE_SUB(`waqt`,INTERVAL 1 HOUR) GROUP BY HOUR(waqt)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM