如何使用standardSQL计算平均时间

时间:2018-10-24 18:39:08

标签: google-bigquery standard-sql

此刻,我在表中有一列包含以下信息:

例如:

00:11:35
00:20:53    
00:17:52    
00:06:41    

我需要显示该时间的平均值。

这些时间平均为00:14:15。

该怎么做?

啊,我试图在Metabase中显示它,所以我需要一种转换形式,在将其平均转换为字符串的时间之后。

所以也许不是那么简单。

字段的结构为:

表字段:tma(类型时间)

1 个答案:

答案 0 :(得分:2)

以下是用于BigQuery标准SQL

#standardSQL
WITH `project.dataset.table` AS (
  SELECT TIME '00:11:35' tma UNION ALL
  SELECT '00:20:53' UNION ALL    
  SELECT '00:17:52' UNION ALL    
  SELECT '00:06:41' 
)
SELECT 
  TIME_ADD(TIME '00:00:00', INTERVAL CAST(AVG(TIME_DIFF(tma, TIME '00:00:00', SECOND)) AS INT64) SECOND) average_time,
  FORMAT_TIME('%T', TIME_ADD(TIME '00:00:00', INTERVAL CAST(AVG(TIME_DIFF(tma, TIME '00:00:00', SECOND)) AS INT64) SECOND)) average_time_as_string
FROM `project.dataset.table`   

有结果

Row average_time    average_time_as_string   
1   00:14:15        00:14:15