当前位置: 代码迷 >> Sql Server >> 【】【周一】请教怎么按时间求平均值,比如按小时、天、月
  详细解决方案

【】【周一】请教怎么按时间求平均值,比如按小时、天、月

热度:77   发布时间:2016-04-27 21:23:04.0
【求助】【周一】请问如何按时间求平均值,比如按小时、天、月
表如下:
(有两列,数据列是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)
  相关解决方案