日期:2014-05-19  浏览次数:20484 次

[求助]急!按给定时间范围,分别求出小时、日、月均值
表如下:
(有两列,数据列是float,记录时间是smalldatetime)

    data                   time
0.123456         2006-03-19   08:55:00
.......           ....................
0.654321         2007-03-19   18:56:00
.......           ...................

给定一个时间范围,比如2006-10-01   00:00:00   到2007-01-01   00:00:00
求sql语句,可以求出每小时数据均值,每天数据均值,每月均值。
得到的结果要data和time字段都有。

在线等高手指点,马上给分。



------解决方案--------------------

--每小时数据均值
Select
Convert(Varchar(13), 记录时间, 120) As 记录时间,
AVG(数据) As 每小时数据均值
From
TableName
Group By Convert(Varchar(13), 记录时间, 120)

--每天数据均值
Select
Convert(Varchar(10), 记录时间, 120) As 记录时间,
AVG(数据) As 每天数据均值
From
TableName
Group By Convert(Varchar(10), 记录时间, 120)

--每月均值
Select
Convert(Varchar(7), 记录时间, 120) As 记录时间,
AVG(数据) As 每月均值
From
TableName
Group By Convert(Varchar(7), 记录时间, 120)


---------

這個不行?
------解决方案--------------------
select right(convert(varchar(13),time,120),2) as 每小时 , avg(data) 每小时数据均值 from tb group by right(substring(varchar(13),time,120),2)
select convert(varchar(10),time,120) as 每天 , avg(data) 每天数据均值 from tb group by convert(varchar(10),time,120)
select convert(varchar(7),time,120) as 每月 , avg(data) 每月数据均值 from tb group by convert(varchar(7),time,120)