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

如何在BigQuery的Standard SQL中计算用户会话时长及平均会话时长

结论

基于你目前提供的chats表结构和示例数据,无法实现你所需的会话时长统计需求。

核心原因

你要求的会话时长计算逻辑为「同一会话中首个inbound_timestamp到最后一个outbound_timestamp的差值」,但现有数据没有任何字段可以判断哪些交互记录属于同一会话:

  • 比如用户217666666662021-03-09的三条交互记录,间隔分别为6小时、5小时,无法判定属于同一个会话还是三个独立会话
  • 不同用户的交互记录也没有会话维度的标识做聚合

实现需求的补充前提

你只需要满足以下任意一个条件,即可完成统计:

  1. 表中新增session_id字段:同一会话的所有交互记录共享同一个session_id,可直接按维度分组计算
  2. 明确会话超时规则:比如约定「用户两次消息交互间隔超过15分钟即判定为新会话」,可通过窗口函数先给每条记录打会话标识,再做后续统计

补充前提后的统计逻辑

先修正你描述里的笔误:会话时长应为最后一个outbound_timestamp减去首个inbound_timestamp,否则会得到负数结果。

每个用户每日平均会话时长

  1. 按Owner、日期、session_id分组,计算每个会话的时长
  2. 再按Owner、日期分组,对该分组下所有会话的时长取平均值即可

每日整体平均会话时长

  1. 按日期、session_id分组,计算当日所有会话的总时长和总会话数
  2. 用总时长除以总会话数,得到当日整体平均会话时长

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:27:00