如何查找按列分组的 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
我在 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