需要结果中当前行值和下一行值的时差



我需要表的行之间的差异。我得到了结果,但第一行为空,所以预期的结果将移到下一行。如何从时差的第一列中删除空值
下面是我的查询

SELECT 
T1.[ID] 
,T1.[url_rec] 
, '' As Diff
,record_timestamp
,CONVERT(VARCHAR(8),record_timestamp - lag(record_timestamp, 1) OVER (ORDER BY T1.[ID]),108)
FROM (
SELECT 
[ID] 
,[url_rec] 
,[record_timestamp]
,ROW_NUMBER() OVER (ORDER BY [ID]) AS 'RowNum'

FROM raw_activity_log  T 
) T1 
LEFT JOIN (
SELECT 
[ID] 
,[url_rec] 
,ROW_NUMBER() OVER (ORDER BY [ID]) AS 'RowNum' 
FROM raw_activity_log T 
) T2 
ON T2.[RowNum] + 1 = T1.[RowNum] 
WHERE T1.[url_rec] <> ISNULL(T2.[url_rec], '') 
ORDER BY T1.[ID]; 
Record_Time00:03:2023:59:5500:00:08
dURL差异
1https://sabezyessent.teramind.co/#/welcome2022-05-09 09:44:22.000
2https://sabezyessent.teramind.co/#/report/42022-05-09 09:47:42.000
3https://sabezyessent.teramind.co/#/clock2022-05-09 09:47:37.000
4https://sabezyessent.teramind.co/#/manage/users/profile/22022-05-09 09:47:45.000

您可以使用CURSOR将上述查询结果作为动态查询进行遍历,这可能有助于您计算每个记录之间的时间差,并且您可以使用TIMSDIFERENCE 更新每个记录

以链接为例:在存储过程中使用带有动态SQL的游标

最新更新