Sql server 2008 组中每行的时差

Sql server 2008 组中每行的时差,sql-server-2008,tsql,Sql Server 2008,Tsql,我的表格如下: GroupOrderID Station Date ----------------------------------------------- 28797 NB003 2013-01-03 12:53:00 28797 NB003 2013-01-03 17:12:00 28797 NB003 2013-01-04 14:45:00 28797 NB003 2013-01-04

我的表格如下:

    GroupOrderID    Station           Date
-----------------------------------------------
    28797   NB003   2013-01-03 12:53:00
    28797   NB003   2013-01-03 17:12:00
    28797   NB003   2013-01-04 14:45:00
    28797   NB003   2013-01-04 15:57:00
    28797   NB003   2013-01-06 16:08:00
    28797   NB003   2013-01-07 10:28:00
    28797   NB003   2013-01-07 10:29:00
    28797   CRM220  2013-01-07 16:31:00
    28797   CRM220  2013-01-07 17:04:00
    28797   CRM220  2013-01-07 17:04:00
    28797   CRM220  2013-01-07 17:04:00
    28797   CRM220  2013-01-07 17:04:00
    28797   CRM220  2013-01-07 17:24:00
    28797   CRM220  2013-01-07 17:24:00
    28797   STEENOVE    2013-01-11 11:03:00
我想要每行两个日期之间的时差,以秒为单位,每站为单位

但存在“最大秒”中断条件。 例如,在计算站点CRM220 First和Last datetime的秒数时,我们不会计算秒数>最大秒数的时间

因此,我们将计算站点第一次和最后一次测量之间的所有秒数,并排除“最大中断”中提到的秒数时间间隔。
和NB003站一样,CRM220每个站都有第一个和最后一个日期,我想要以秒为单位的差异。

此tsql将以秒为单位提供差异。**

with cte as
(SELECT
   ROW_NUMBER() OVER (PARTITION BY GroupOrderID    , Station ORDER BY CDate) row,
  GroupOrderID    , Station, CDate
 FROM #supportContacts)
SELECT 
   a.GroupOrderID    , a.Station ,
   DATEDIFF ( second , b.CDate , a.CDate) as 'DiffinSec'
FROM
   cte a
   LEFT  JOIN cte b
   on a.GroupOrderID = b.GroupOrderID
   and a.Station = b.Station
    and a.row = b.row+1
结果


使用CTE尝试此链接此解决方案如何实现最大秒中断?