谁给我写个sql语句:关于上一条记录和下一条记录的对比

2024-12-16 18:04:04
推荐回答(1个)
回答1:

select b.*,
(case when (b.s_time-a.s_time)*1440>2 then 2
else 0 end ) --下一条记录与上一条记录的时间差--分钟
from
(select a.*,
row_number() over(partition by servier_id order by service_id,s_time desc) roworder
from t1
) a,
(select a.*,
row_number() over(partition by servier_id order by service_id,s_time desc) roworder
from t1
) b
where a.servicer_id=b.service_id and b.roworder=a.roworder+1;

其中
t1表名
servier_id 是一个关键,比如一个员工的ID
s_time 记录时间
做两个子查询,对每一个员工的记录都按时间倒序排列
where条件把同一员工的前后两条记录关联起来。