You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQLite3中计算用户相邻交易的时间差?

SQLite3实现用户交易时间间隔计算

假设你的交易表名为transactions,可以使用SQLite的窗口函数结合时间处理函数实现需求,查询语句如下:

SELECT
  "Transaction ID",
  Timestamp,
  "User ID",
  CASE
    WHEN LAG(Timestamp) OVER (PARTITION BY "User ID" ORDER BY Timestamp) IS NULL THEN 'None'
    ELSE CAST((JULIANDAY(Timestamp) - JULIANDAY(LAG(Timestamp) OVER (PARTITION BY "User ID" ORDER BY Timestamp))) * 1440 AS INTEGER)
  END AS "Time Taken"
FROM transactions
ORDER BY "Transaction ID";

关键逻辑说明:

  • 窗口函数LAG():按User ID分组,再按Timestamp排序,获取当前交易对应的该用户上一次交易的时间戳。
  • 时间差计算:用JULIANDAY()将时间戳转为儒略日格式,差值乘以1440(1天的分钟数)得到分钟间隔,最后转为整数。
  • 空值处理:通过CASE语句判断,若没有上一次交易(LAG()返回空)则显示None,否则输出计算出的分钟数。
  • 结果排序:按Transaction ID排序,保证输出顺序与期望表格一致。

执行该查询后,输出结果将完全匹配你给出的期望格式。

内容的提问来源于stack exchange,提问作者imad97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:33:02