获取SQL中两个连续行的时差
我使用以下查询获得如下所示的结果:获取SQL中两个连续行的时差,sql,Sql,我使用以下查询获得如下所示的结果: SELECT calls.[Activity ID_18], calls.[Call SMS], calls.[Created By] PA_Name, calls.LOB, calls.Date, calls.StartDate Time_of_Call, calls.[Duration (min)] Duration, calls.[Call Connected?] 'Connected?'
SELECT
calls.[Activity ID_18],
calls.[Call SMS],
calls.[Created By] PA_Name,
calls.LOB,
calls.Date,
calls.StartDate Time_of_Call,
calls.[Duration (min)] Duration,
calls.[Call Connected?] 'Connected?'
FROM
[dbo].[tblcallsnew] calls
WHERE
CAST(calls.Date AS date) >= '3/15/2020' AND calls.LOB IN ('SO','EM')
ORDER BY
PA_Name,CAST(calls.StartDate AS datetime2)
通过上面的查询,我得到以下结果:
Activity ID_18 Call SMS PA_Name LOB Date Time_of_Call Duration Connected?
00T2s000003U4uIEAS Call Aaron Fernandes EM 2020-03-16 2020-03-16 15:59:00 0.68 0
00T2s000003U4oMEAS Call Aaron Fernandes EM 2020-03-16 2020-03-16 16:02:00 0.07 0
00T2s000003U4z7EAC Call Aaron Fernandes EM 2020-03-16 2020-03-16 16:03:00 0.43 0
00T2s000003U59EEAS Call Aaron Fernandes EM 2020-03-16 2020-03-16 16:08:00 0.45 0
00T2s000003U517EAC Call Aaron Fernandes EM 2020-03-16 2020-03-16 16:10:00 3.37 1
00T2s000003U5MJEA0 Call Aaron Fernandes EM 2020-03-16 2020-03-16 16:17:00 0.50 0
00T2s000003U5ApEAK Call Aaron Fernandes EM 2020-03-16 2020-03-16 16:18:00 0.08 0
我想要的是:我想要得到每个PA名称(代理)连续两次调用之间经过的时间。
这个想法是想知道一个代理在两次通话之间花费了多少时间
在此方面的任何帮助都将不胜感激。您可以使用lead()
:
用您正在使用的数据库标记您的问题。
select c.*,
lead(startDate) over (partition by pa_name order by startDate) as next_startDate,
datediff(minute, startDate,
lead(startDate) over (partition by pa_name order by startDate)
) as minutes_between
from [dbo].[tblcallsnew] c
where c.Date >= '2020-03-15' and c.LOB in ('SO','EM')