BigQuery中如何计算单列Order_Date时间戳的平均值
BigQuery 统计订单时间字段均值方案
你的Order_Date是标准UTC时间戳格式,直接用内置聚合函数即可完成计算,不需要额外写复杂的时间转换逻辑。
基础实现代码
如果Order_Date字段本身是TIMESTAMP类型(从你给出的样例格式判断大概率是该类型),直接调用AVG()聚合函数即可:
SELECT AVG(Order_Date) AS average_order_date FROM `替换为你的项目.数据集.订单表名` -- 若需要筛选已生成的有效订单,取消下面注释并调整匹配实际字段的筛选条件 -- WHERE order_status = 'PAID'
针对你给出的4条样例数据,上述语句的计算结果为:2022-06-13 19:05:00 UTC
特殊情况处理
如果Order_Date是字符串类型存储,需要先通过PARSE_TIMESTAMP转换为时间戳类型再计算均值:
SELECT AVG(PARSE_TIMESTAMP('%Y-%m-%d %H:%M:%S UTC', Order_Date)) AS average_order_date FROM `替换为你的项目.数据集.订单表名`
计算逻辑说明
- BigQuery对TIMESTAMP类型做均值计算时,会自动将时间转换为Unix纪元起的微秒数值计算算术平均,最终再自动转回TIMESTAMP格式返回,不需要手动做数值-时间的互转
- 如果需要按维度拆分统计(比如按不同品类、不同城市分别计算平均下单时间),在SELECT中增加维度字段后搭配
GROUP BY对应字段即可
内容的提问来源于stack exchange,提问作者M. Awal F
相关产品推荐
相关产品推荐

