Sql 五分钟取平均值

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
-- 这个按每五分钟的,你稍微改改就行了. [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

 

转载于:https://www.cnblogs.com/Sue_/articles/1787851.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值