当前位置: 代码迷 >> Sql Server >> 关于SQL查出一张有时间记要的表相间隔5秒内的所有记录
  详细解决方案

关于SQL查出一张有时间记要的表相间隔5秒内的所有记录

热度:93   发布时间:2016-04-24 09:10:44.0
关于SQL查出一张有时间记录的表相间隔5秒内的所有记录
例如一张表users,有个时间date,查出注册相差不超5秒的三条记录如下该怎么操作
2015-04-20 20:19:30
2015-04-20 20:19:31
2015-04-20 20:19:35
------解决思路----------------------
;WITH CTE AS(
SELECT TOP 1 [date],1 C--用于计数
FROM users
ORDER BY [date]
UNION ALL
SELECT T1.[date],T2.C+1
FROM users T1
JOIN CTE T2 ON T1.[date]>T2.[date]AND DATEDIFF(SECOND,T2.[date],T1.[date])>=5
WHERE T2.C<3--限定查三条
AND NOT EXISTS(SELECT 1 FROM users T3 WHERE T3.[date]>T2.[date]AND DATEDIFF(SECOND,T2.[date],T3.[date])>=5 AND T3.[date]<T1.[date])
)
SELECT * FROM CTE
  相关解决方案