用户交易时间差
Posted
技术标签:
【中文标题】用户交易时间差【英文标题】:time difference between transaction of user 【发布时间】:2019-11-23 11:49:59 【问题描述】:Table: txn
customer_id | time_stamp
-------------------------
1 | 00:01:03
1 | 00:02:04
2 | 00:03:05
2 | 00:04:06
想查询customer_id的每笔第一笔交易和下一笔交易的时间差
结果:
客户 ID |时差
1 | 61
选择客户 ID,... 来自txn
【问题讨论】:
您使用的是 SQL Server 还是 Google BigQuery?这些是非常不同的数据库。 Why Should I Tag My RDBMS? 请说明,使用什么DB,数据如何插入表中,如何获取? 【参考方案1】:你想要lead()
。 . .但众所周知,日期/时间函数是特定于数据库的。在 SQL Server 中:
select t.*,
datediff(second,
time_stamp,
lead(time_stamp) over (partition by customer_id order by time_stamp)
) as diff_seconds
from t;
在 BigQuery 中:
select t.*,
timestamp_diff(time_stamp,
lead(time_stamp) over (partition by customer_id order by time_stamp),
second
) as diff_seconds
from t;
【讨论】:
以上是关于用户交易时间差的主要内容,如果未能解决你的问题,请参考以下文章