频道栏目
首页 > 资讯 > SQL Server > 正文

SQL按时间段进行分组统计

13-03-22        来源:[db:作者]  
收藏   我要投稿
SQL按时间段进行分组统计
 
Java代码  
[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  
 
 
相关TAG标签
上一篇:oracle表空间不足时如何处理
下一篇: JQuery学习——标签页效果二
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站