SQL SERVER 同一个表并且是同一个时间字段进行相减

表A
ID NUM TIEM
1 10 2012-06-10 10:10:00
2 20 2012-06-10 20:10:00
3 20 2012-06-10 20:10:00
4 10 2012-06-10 10:20:00
5 10 2012-06-10 10:30:00
......
求SQL语句:用NUIM进行分组,就用后一条记录的时间减去前一条记录的时间(精确到分钟),例如NUM=10时,就用ID为4的减去ID为1的时间差,ID为5的减去ID为4的时间差,即得如下表
ID NUM TIEM 时间差
1 10 2012-06-10 10:10:00 0
2 20 2012-06-10 20:10:00 0
3 20 2012-06-10 20:10:00 600
4 10 2012-06-10 10:20:00 10
5 10 2012-06-10 10:35:00 15

****************************************************************
select 
a.id, a.num, a.time, isnull( DATEDIFF( [Minute], ( (select top 1 time from test where num = ( select num from test where id=a.id ) AND id <a.id order by ID desc)--获得前一条记录 ), a.time ) ,0) as result from test a
原文地址:https://www.cnblogs.com/qiulang/p/3410764.html