如何查找按列分组的 BigQuery 中的平均时间?

How to find, average of time in BigQuery grouped by a column?

我在 table job_stats 中有以下几列。 job_end_time 是 BQ 似乎不允许直接使用平均函数的 TIME 数据类型。我正在使用标准 SQL 并试图找出每项工作的平均结束时间。

job_name run_date job_start_time job_end_time


A 2020-08-03 15:30:00 15:40:00

A 2020-08-10 15:40:00 16:00:00

B 2020-08-01 09:00:00 09:20:00

B 2020-08-08 09:30:00 10:00:00

预期输出:

job_name avg_end_time

一个15:50:00

乙09:40:00

以下适用于 BigQuery 标准 SQL

#standardSQL 
SELECT job_name, 
  FORMAT_TIMESTAMP(
    '%T', 
    TIMESTAMP_SECONDS(CAST(AVG(TIME_DIFF(job_end_time, '00:00:00', SECOND)) AS INT64))
  ) AS avg_end_time 
FROM `project.dataset. job_stats`
GROUP BY job_name   

如果应用于您问题中的示例数据 - 输出为

Row job_name    avg_end_time     
1   A           15:50:00     
2   B           09:40:00