当前位置: 代码迷 >> Sql Server >> 求高手解答怎么获取连续时间的记录
  详细解决方案

求高手解答怎么获取连续时间的记录

热度:22   发布时间:2016-04-24 09:26:49.0
求高手解答如何获取连续时间的记录
如何获得[shift]记录连续超过6次的记录

------解决思路----------------------
WITH t1 AS (
    SELECT Shift, shiftDate,
           ROW_NUMBER() OVER(ORDER BY shiftDate) rn1,
           ROW_NUMBER() OVER(ORDER BY Shift,shiftDate) rn2
      FROM table1
)
,t2 AS (
    SELECT Shift, shiftDate,
           rn2 - rn1 rx
      FROM t1
     WHERE Shift IS NOT NULL
)
    SELECT MIN(shiftDate) dt1,
           MAX(shiftDate) dt2,
           COUNT(*) c
     FROM t2
 GROUP BY rx
   HAVING COUNT(*) >=6
 ORDER BY MIN(shiftDate)
  相关解决方案