我如何使用标准 SQL 计算平均时间
How do i calculate an average time using standardSQL
目前我在 table 中有一列包含以下信息:
例如:
00:11:35
00:20:53
00:17:52
00:06:41
我需要显示那个时间的平均值。
这些时间的平均值为 00:14:15。
怎么做?
啊,我想在 Metabase 中显示它,所以我需要一个转换表单,在平均时间后将其转换为字符串。
所以也许没那么简单。
字段结构为:
Table 字段:tma(输入时间)
以下适用于 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
目前我在 table 中有一列包含以下信息:
例如:
00:11:35
00:20:53
00:17:52
00:06:41
我需要显示那个时间的平均值。
这些时间的平均值为 00:14:15。
怎么做?
啊,我想在 Metabase 中显示它,所以我需要一个转换表单,在平均时间后将其转换为字符串。
所以也许没那么简单。
字段结构为:
Table 字段:tma(输入时间)
以下适用于 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