SQLServer時段查詢,SQLServer時段

來源:互聯網
上載者:User

SQLServer時段查詢,SQLServer時段

統計連續時間段資料

if OBJECT_ID(N'Test',N'U') is not nulldrop table Testgo create table Test(pscode decimal(15),outputcode int,monitortime datetime)insert into Testselect 4100000406,1,convert(datetime,'2015-04-01 00:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 01:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 02:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 03:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 04:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 05:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 06:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 07:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 08:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 09:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 10:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 11:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 13:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 14:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 15:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 16:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 17:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 18:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 19:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 20:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 22:00') union allselect 4100000406,1,convert(datetime,'2015-04-01 23:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 01:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 02:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 03:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 04:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 05:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 06:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 07:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 08:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 09:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 11:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 12:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 13:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 14:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 15:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 16:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 17:00') union allselect 4100000405,2,convert(datetime,'2015-04-01 18:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 00:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 01:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 02:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 03:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 04:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 05:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 06:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 07:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 08:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 09:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 11:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 12:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 13:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 14:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 15:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 16:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 17:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 18:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 19:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 20:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 22:00') union allselect 4100000402,1,convert(datetime,'2015-04-01 23:00')select pscode,outputcode,   convert(varchar(16),MIN(monitortime),120)+'~'+convert(varchar(16),MAX(monitortime),120) fw,       COUNT(1) num  from (select x.pscode,x.outputcode,x.monitortime,dateadd(HOUR,-x.orderby,x.monitortime) diff  from (select pscode,outputcode,monitortime,   ROW_NUMBER() over(partition by pscode,outputcode order by pscode,outputcode,monitortime) orderby   from Test) x)y  group by y.pscode,y.outputcode,y.diff

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.