Sql 五分钟取平均值

代码
--这个按每五分钟的,你稍微改改就行了. [code=SQL]create table tb(时间 datetime , 金额 int) insert into tb values('2007-1-1 10:00:23' , 8 ) insert into tb values('2007-1-1 10:01:24' , 4 ) insert into tb values('2007-1-1 10:05:00' , 2 ) insert into tb values('2007-1-1 10:06:12' , 3 ) insert into tb values('2007-1-1 10:08:00' , 1 ) insert into tb values('2007-1-1 10:12:11' , 5 ) go --时间段>=10:00:00 and 时间段 <10:05:00 select dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,-1,时间),120),dateadd(ss,-1,时间))/5)*5,convert(varchar(10),时间,120)) as 时间段, count(*) as 行数, sum(金额) as 总金额 from tb group by dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,-1,时间),120),dateadd(ss,-1,时间))/5)*5,convert(varchar(10),时间,120)) /* 时间段 行数 总金额 ------------------------------------------------------ ----------- ----------- 2007-01-01 10:00:00.000 3 14 2007-01-01 10:05:00.000 2 4 2007-01-01 10:10:00.000 1 5 (所影响的行数为 3 行) */ --时间段>10:00:00 and 时间段 <=10:05:00 select dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,1,时间),120),dateadd(ss,1,时间))/5)*5,convert(varchar(10),时间,120)) as 时间段, count(*) as 行数, sum(金额) as 总金额 from tb group by dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,1,时间),120),dateadd(ss,1,时间))/5)*5,convert(varchar(10),时间,120)) /* 时间段 行数 总金额 ------------------------------------------------------ ----------- ----------- 2007-01-01 10:00:00.000 2 12 2007-01-01 10:05:00.000 3 6 2007-01-01 10:10:00.000 1 5 (所影响的行数为 3 行) */ drop table tb

 

posted @ 2010-07-29 14:13  Sue_娜  阅读(1941)  评论(0编辑  收藏  举报