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

如何计算Call表与Order表中First Call和First Order时间的差值

两张表时间差计算方案

前提说明

两张表通过共同的唯一关联字段(比如用户IDuser_id)匹配同一主体的通话、订单数据,计算逻辑为先分别聚合得到每个主体的首次通话时间、首次订单时间,再关联计算两者的时间差。

具体实现(SQL示例)

以MySQL为例,示例代码如下:

SELECT 
    c.user_id,
    c.`First Call` 首次通话时间,
    o.`First Order` 首次订单时间,
    -- 按需要选择时间差精度,以下为常用的天、小时精度计算
    DATEDIFF(o.`First Order`, c.`First Call`) 时间差_天,
    TIMESTAMPDIFF(HOUR, c.`First Call`, o.`First Order`) 时间差_小时
FROM (
    -- 聚合Call表得到每个用户的首次通话时间
    SELECT user_id, MIN(call_time) AS `First Call` 
    FROM `Call` 
    GROUP BY user_id
) c
LEFT JOIN (
    -- 聚合Order表得到每个用户的首次订单时间
    SELECT user_id, MIN(order_time) AS `First Order` 
    FROM `Order` 
    GROUP BY user_id
) o ON c.user_id = o.user_id
-- 可选过滤:只保留既有首次通话也有首次订单的用户,不需要可删除该行
WHERE o.`First Order` IS NOT NULL

适配说明

  • 其他数据库可替换对应时间差函数:PostgreSQL直接用o."First Order" - c."First Call"得到时间间隔,SQL Server用DATEDIFF(时间精度, c.[First Call], o.[First Order])计算
  • 关联字段不是user_id的,替换为你实际使用的关联字段即可
  • JOIN类型可按需调整:需要保留所有有首次通话的用户用LEFT JOIN,保留所有有首次订单的用户用RIGHT JOIN,两者都保留用FULL JOIN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:06:02