首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

找出时间间隔最小的记录解决思路

2012-01-31 
找出时间间隔最小的记录表格如下:idtimenum019:01...019:05..019:12..029:01..039:01..039:02..049:06..04

找出时间间隔最小的记录
表格如下:
id     time     num
01     9:01     ...
01     9:05     ..
01     9:12     ..
02     9:01     ..
03     9:01     ..
03     9:02     ..
04     9:06     ..
04     9:08     ..
..     ..         ..

希望找到同一ID的第二条记录与第一条记录之间间隔最短的ID
比如ID=03   间隔为1分钟.

[解决办法]

create table temp0405(id int,time datetime)
go
insert temp0405
select 01, '9:01 '
union all select 01, '9:05 '
union all select 01, '9:12 '
union all select 02, '9:01 '
union all select 03, '9:01 '
union all select 03, '9:02 '
union all select 04, '9:06 '
union all select 04, '9:08 '
go
select top 1 a.id,datediff(s,a.time,b.time)as df from temp0405 a join temp0405 b on a.id=b.id and a.time <b.time order by df

go

drop table temp0405
------
result
------
id df
--------------
3 60(seconds)


[解决办法]
借用楼上测试数据:

select top 1 a.id ,min(datediff(s,a.time,b.time)) as tt from temp0405 a ,temp0405 b group by a.id
having min(datediff(s,a.time,b.time)) <> 0
order by tt desc

热点排行