求数据库汇总语句有关时间段?(50分)

  • 主题发起人 主题发起人 spary123
  • 开始时间 开始时间
S

spary123

Unregistered / Unconfirmed
GUEST, unregistred user!
原始数据是这样在表中存放的:
time(smalldatetime) so2(float)
2006-08-09 20:00:00 18.0
2006-08-09 20:15:00 17.0
2006-08-09 20:30:00 18.0
2006-08-09 20:45:00 13.0
2006-08-09 21:00:00 12.0
2006-08-09 21:15:00 14.0
2006-08-09 21:30:00 15.0
我想按日期汇总每个小时的平均数据,怎么处理啊?
得到如下结果:
2006-08-09 20 16.5
2006-08-09 21 13.7
诚心请教,感谢了
 
SELECT TIME,AVG(SO2) FROM 表 GROUP BY TIME
 
在 group by 中 按日期 时 来分组
 
建议你存如数据库时只存日期和小时,分、秒均设为 0,这样就可以用
SELECT TIME,AVG(SO2) FROM 表 GROUP BY TIME
获得结果了。
 
To Johnny_du:
你的方法好像行不通,在TIME中存在分、秒,直接对TIME 进行分组的结果是表内有多少条记录就会出来多少条记录的
 
select sum(so2) from tablename group by substring(time,12,2)
 
对,同意kaida的说法
 
select AVG(so2) from 表 group by substring(CAST(time as varchar(50)),12,2)
 
多谢以上几位。
主要是想问时间如何处理,就是“日期+小时 平均数”的形式 。
 
呵呵:)对!kaida和nicki说得不错,我忽略了这一点。
 
其實那個也不難的,你用convert把日期轉換到小時,然后再匯總就行
selct avg(so2),convert(char(13),time,25) from table
group by convert(char(13),time,25)
 

Similar threads

后退
顶部