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尝试此链接此解决方案如何实现最大秒中断?