【求助】【周一】请问如何按时间求平均值,比如按小时、天、月
表如下:
(有两列,数据列是float,记录时间是smalldatetime)
数据 记录时间
0.123456 2007-3-19 08:55:00
0.654321 2007-3-19 08:56:00
....... ...................
求sql语句,可以求出每小时数据均值,每天数据均值,每月均值。
新手求助,希望大家不吝赐教。
------解决方案--------------------select avg(数据) as 小时均值
from t
group by convert(varchar(13),记录时间,120)
select avg(数据) as 每天均值
from t
group by convert(varchar(10),记录时间,120)
select avg(数据)as 每月均值
from t
group by convert(varchar(6),记录时间,120)
------解决方案----------------------每小时数据均值
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 avg(数据) from table group by DATEPART(hh,记录时间)
select avg(数据) from table group by DATEPART(day,记录时间)
select avg(数据) from table group by DATEPART(month,记录时间)
------解决方案--------------------数据 记录时间
0.123456 2007-3-19 08:55:00
0.654321 2007-3-19 08:56:00
....... ...................
求sql语句,可以求出每小时数据均值,每天数据均值,每月均值。
每小时平均值
select substring(convert(varchar(19),记录时间,120),12,2) as 小时,avg(数据) from tb group by substring(convert(varchar(19),记录时间,120),12,2)
每天平均值
select substring(convert(varchar(19),记录时间,120),1,10) as 小时,avg(数据) from tb group by substring(convert(varchar(19),记录时间,120),1,10)
每月平均值
select substring(convert(varchar(19),记录时间,120),1,7) as 小时,avg(数据) from tb group by substring(convert(varchar(19),记录时间,120),1,7)