mssql sqlserver 对数据表中的数据每三分钟进行一次分组聚合计算


摘要:
下文讲述sqlserver通过脚本对数据进行3分钟一次聚合计算,实现方法如下所示:
实验环境:sqlserver 2008


实现思路:
1 设定统计的基准时间
2 将数据表中的时间同基准时间相减,得出之间的分钟差
3 将分钟差同3进行整除取商
4 对商进行分组聚合
例:

 create table test (keyId int,writeDate datetime)
go

insert into test(keyId,writeDate)values
(1,'2018-7-25 10:01:02:001'),
(2,'2018-7-25 10:02:32'),
(3,'2018-7-25 10:04:42'),
(4,'2018-7-25 10:08:12'),
(5,'2018-7-25 10:09:22'),
(6,'2018-7-25 10:11:25'),
(7,'2018-7-25 10:22:35'),
(8,'2018-7-25 10:23:42')

go

---基准时间为 2018-7-25 10:01:02 
declare @d datetime
set @d ='2018-7-25 10:01:02'


select max(keyId),quJian from 
(
select keyId, datediff(minute,@d,writeDate)/3 as [quJian] from test
) as t 
group by   [quJian]  



go
drop table test 

mssql_sqlserver_三分钟聚合

mssql_sqlserver_三分钟聚合