2017-06-16 34 views
0

我有这个表:SUM()

Big query table

的TripDrivingDuration列是一个字符串类型的专栏中,我试图将字符串转换为时间,然后使之和,但没有按”工作。

Failed attempt

谁能帮助我?

+0

你期待的结果是什么?对时间戳进行求和是没有意义的。 –

+0

嗨艾略特, 该列意味着旅行的持续时间,所以我想要得到的总持续时间deviceId按日期分组 –

回答

0

这是否适合您?

WITH DATA as(
select 29 as VehicleId, '2017-01-02T 15:57:063000' as TripDateTime, '00:00:28' as TripDrivingDuration union all 
select 29 as VehicleId, '2017-01-02T 13:23:12' as TripDateTime, '00:00:21' as TripDrivingDuration union all 
select 29 as VehicleId, '2017-01-02T 17:23:05.063000' as TripDateTime, '00:07:11.9370000' as TripDrivingDuration union all 
select 29 as VehicleId, '2017-01-02T 14:59:44.063000' as TripDateTime, '00:08:19.9370000' as TripDrivingDuration union all 
select 29 as VehicleId, '2017-01-02T 15:45:44.063000' as TripDateTime, '00:01:22.9370000' as TripDrivingDuration union all 
select 29 as VehicleId, '2017-01-02T 15:17:58.063000' as TripDateTime, '00:03:29.9370000' as TripDrivingDuration union all 
select 29 as VehicleId, '2017-01-02T 18:52:15' as TripDateTime, '00:01:26' as TripDrivingDuration union all 
select 29 as VehicleId, '2017-01-02T 17:05:24.063000' as TripDateTime, '00:13:09.9370000' as TripDrivingDuration 
) 

SELECT 
    VehicleId, 
    SUM(UNIX_SECONDS(PARSE_TIMESTAMP('%H:%M:%S', REGEXP_EXTRACT(TripDrivingDuration, r'(.*)\.\d+')))) elapsed_time 
FROM data 
GROUP BY VehicleId 
+0

非常感谢你这会帮助我很多。这是答案 –