SQL计算每个ID的最后一笔交易的时间
问题描述:
你好我试图计算每个ID在每个交易之间的时间差异。SQL计算每个ID的最后一笔交易的时间
的数据看起来像
Customer_ID | Transaction_Time
1 00:30
1 00:35
1 00:37
1 00:38
2 00:20
2 00:21
2 00:23
我想要得到的结果看起来像
Customer_ID | Time_diff
1 5
1 2
1 1
2 1
2 2
我真的很感激任何帮助。
谢谢
答
大多数数据库都支持LAG()
函数。但是,日期/时间函数可能取决于数据库。以下是SQL Server的一个示例:
select t.*
from (select t.*,
datediff(second,
lag(transaction_time) over (partition by customer_id order by transaction_time),
transaction_time
) as diff
from t
) t
where diff is not null;
虽然计算时间差的函数有所不同,但大多数数据库中的逻辑类似。
您正在使用哪些DBMS?这可以使用'lag()'函数来解决。 'transaction_time'列的数据类型是什么? –