34,593
社区成员
发帖
与我相关
我的任务
分享
create table dates(id INT,[DATETIME] DATETIME,VALUE int)
insert into dates
select '1', '2015-05-05 08:00:00.000', '0' UNION all
select '2', '2015-05-05 08:00:01.000', '1' UNION all
select '3', '2015-05-05 08:00:02.000' ,'2' UNION all
select '4', '2015-05-05 08:00:03.000' ,'3' UNION all
select '5', '2015-05-05 08:00:04.000' ,'4' UNION all
select '6', '2015-05-05 08:00:05.000' ,'5' UNION all
select '7','2015-05-05 08:00:06.000' ,'6' UNION all
select '8', '2015-05-05 08:00:07.000' ,'7' UNION all
select '9', '2015-05-05 08:00:08.000', '8' UNION all
select '10', '2015-05-05 08:00:09.000' ,'9' UNION all
select '11', '2015-05-05 08:00:10.000' ,'10' UNION all
select'12', '2015-05-05 08:00:15.000' ,'15' UNION all
select '13', '2015-05-05 08:00:19.000' ,'19' UNION all
select'14', '2015-05-05 08:00:20.000' ,'20' UNION all
select'15', '2015-05-05 08:00:30.000' ,'30' UNION all
select'16','2015-05-05 08:00:31.000','31' UNION all
select'17', '2015-05-05 08:00:36.000','36'
DECLARE @Temp20150717 TABLE (DatetimeS DATETIME)
DECLARE @Sdate DATETIME,
@Edate DATETIME
SET @Sdate=(SELECT MIN(Datetime) FROM dates)
SET @Edate=(SELECT MAX(Datetime) FROM dates)
WHILE @Sdate<=@Edate
BEGIN
INSERT INTO @Temp20150717(DatetimeS)values (@Sdate)
SET @Sdate=(SELECT MIN([Datetime]) FROM dates WHERE [Datetime]>=DATEADD(ss,5,@Sdate))
END
SELECT * FROM dates WHERE [Datetime] IN(SELECT DatetimeS from @Temp20150717)
select Id,datetime,value from (
select *,
row_number() over(partition by DATEDIFF(SS,'2015-05-05 08:00:00.000',datetime)/5 order by datetime asc) as rId
from tablename as a)
) as b where rId=1